<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>Комментарии на: Системы контроля версий и клиенты для Windows: GIT и SourceTree</title>
	<atom:link href="https://autolisp.ru/2014/03/19/cvs_and_windows_clients_sourcertee/feed/" rel="self" type="application/rss+xml" />
	<link>https://autolisp.ru/2014/03/19/cvs_and_windows_clients_sourcertee/</link>
	<description>LISP для AutoCAD</description>
	<lastBuildDate>Tue, 24 Feb 2026 16:11:05 +0000</lastBuildDate>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.0</generator>
	<item>
		<title>От: Андрей</title>
		<link>https://autolisp.ru/2014/03/19/cvs_and_windows_clients_sourcertee/comment-page-1/#comment-57458</link>
		<dc:creator><![CDATA[Андрей]]></dc:creator>
		<pubDate>Wed, 09 Sep 2015 18:58:20 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=1791#comment-57458</guid>
		<description><![CDATA[&gt; Необходимость работы с терминалом при создании центрального репозитория

не &quot;центрального&quot;, а &quot;голого&quot; репозитория, (bare repository). Такие репозитории не обязательно центральные.]]></description>
		<content:encoded><![CDATA[<p>&gt; Необходимость работы с терминалом при создании центрального репозитория</p>
<p>не "центрального", а "голого" репозитория, (bare repository). Такие репозитории не обязательно центральные.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Андрей</title>
		<link>https://autolisp.ru/2014/03/19/cvs_and_windows_clients_sourcertee/comment-page-1/#comment-57457</link>
		<dc:creator><![CDATA[Андрей]]></dc:creator>
		<pubDate>Wed, 09 Sep 2015 18:52:50 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=1791#comment-57457</guid>
		<description><![CDATA[&gt;Жмем кнопку [Добавить].
&gt; Все, репозиторий создан. Прежде чем его инициализировать и начинать с ним работать, его надо немного настроить.

Этого момента я не понял. Снова создал, что ли? Ты ведь уже перед этим создал репозиторий при помощи git init. Т.е. ты сейчас средствами SourceTree создаёшь клон на основе этого, только что созданного репозитория (т.е.выполняешь git clone)? Или же ты просто указываешь SourceTree где находится нужный тебе репозиторий (без лишнего клонирования)? На скрине консоли ты пишешь v:, а на скрине SourceTree у тебя указан путь c:\git_tmp. Уточняю на всякий случай, а то вдруг ты действительно клонируешь...

&gt;Все, репозиторий создан. Прежде чем его инициализировать и начинать с ним работать, его надо немного настроить.

Ты его уже инициализировал командой git init.

&gt;Важно! Есть один очень серьезный, и не очень приятный момент: каталоги верхнего уровня не могут иметь первым символом неанглийские буквы. SourceTree, как выяснилось, такие названия не обрабатывает вообще.

Весьма существенный минус, на мой взгляд (ложка дёгтя). :( Порой переименовывание каталогов может оказаться неприемлемым, т.к. их имена фигурирую в различного рода настройках различных приложений, в т.ч. и в административных утилитах.

&gt; И, наконец, последнее: убираем все файлы из корня сетевого диска:
&gt; /*.*

Не только файлы, но и каталоги, в имени которых присутствует точка.

&gt;Сначала создадим центральный репозиторий, внутри которого не хранятся собственно рабочие файлы. Вызываем терминал, меняем в нем текущий каталог на v:\VersionControl и потом выполняем команду
&gt; git init --bare

Правильней так: &quot;не содержащий рабочего дерева (working tree)&quot;.

&gt;По окончании процесса у нас есть рабочая копия, хранящаяся на сервере. Пришло время преобразовать ее в нормальный центральный репозиторий.

На каком ещё &quot;сервере&quot;? Ты ведь работал с виртуальным диском который, по сути - один из каталогов твоего диска D:\. Я не понял, что ты подразумеваешь под &quot;преобразовать&quot;... 

&gt; Теперь собственно клонирование «рабочей копии» в «центральный» репозиторий:
&gt; git clone −−bare  
&gt;
&gt; Учитывая наши условия, получим нечто типа:	
&gt; git clone --bare v:/ v:/versioncontrol

А зачем ты перед этим делал git init --bare для каталога v:\VersionControl? В этом не было необходимости, т.к. git clone --bare v:/ v:/versioncontrol и так сделает всё как надо.

&gt;Возвращаемся в SourceTree, и клонируем репозиторий:

Знакомая картинка... Выше ты её уже скрин с обозначенными путями (хотя там должны были пути начинаться с v:\). :)

&gt; Возвращаемся в SourceTree, и клонируем репозиторий:
&gt; Указываем, откуда клонируем, куда, задаем имя. Остальные настройки не трогаем. Нажимаем Клонировать.

На скрине указан неверный каталог источника: вместо v:\ должен был быть указан v:\VersionControl, ведь именно его ты назначаешь &quot;центральным&quot; и доступным для выполнения git push.

&gt; Теперь для обоих репозиториев (и того, который на сервере, и локального) устанавливаем в качестве внешнего наш V:\_GIT_VersionControl.

А почему на том же самом локальном диске? В чём соль? Я ещё понимаю, если у тебя:
1) рабочий репозиторий - непосредственно для работы.

2) тот, который ты назвал &quot;центральным&quot; (я бы предпочёл назвать его &quot;расшаренным&quot;) так же находится на твоём диске, но доступен по сети др. программерам для выполнения git fetch (т.е. доступен только для чтения).

3) а этот самый _GIT_VersionControl находится в сетевом каталоге, доступный всем программерам только для чтения и лишь их &quot;боссу&quot; для записи - вот это действительно &quot;центральный&quot; репозиторий. 

Причём у каждого девелопера свои рабочий и расшаренный репозитории. Каждый девелопер в настройках своих расшаренных и рабочих репозиториев имеет записи для &quot;внешних репозиториев&quot; (remote repositories).

&gt;Возвращаемся в SourceTree:

Что за муть показана на скрине в тексте  файла Settings/Users/Users.ini? Сплошные кракозяблы... Смотрю SourceTree серьёзно не дружит с кирилицей, хотя вроде комменты к комитам показывает корректно...

Этот скрин: http://autolisp.ru/wp-content/uploads/2014/03/sourcetreesetup_041.png как-то выподает из общей логики повествования. Неплохо было бы пояснить, что user.name и user.email нужно хранить в конфиг-файлах git (каждый конфиг имеет свою область влияния).

&gt; Крайне желательно нажать кнопку “Обновить”, потом выбрать ветку, с которой надо вытаскивать. Все, жмем ОК.

Неплохо было бы пояснить почему: потому, что если кто-то уже отправил свой коммит в центральный репозиторий, то ты не сможешь сделать этого до тех пор, пока предварительно не синхронизируешься с центральным репом.

&gt;В любой момент, имея несколько ревизий, можно восстановить состояние рабочей копии – достаточно в SourceTree выполнить двойной клик на нужной ревизии. Обновление выполняется практически моментально.

Что подразумевается по &quot;ревизией&quot;? Коммиты, что ли?

&gt; Для объединения желательно выбрать основную (master) ветку и объединять именно с ней.

Чем обусловлено это самое &quot;желательно&quot;? Ветки, при необходимости, можно закидывать и в центральный репозиторий, как альтернативные пути развития ПО.

&gt; http://autolisp.ru/wp-content/uploads/2014/03/sourcetree_branch05.png

Весьма неинформативные имена коммитов. 

&gt; 1. Работа выполняется в своем собственном окне

Этой фразы я не понял. Имеется в виду то, что это GUI-приложение, а не консольное?

&gt; Необходимость работы с терминалом при создании центрального репозитория

Странно... Может ты просто плохо искал?]]></description>
		<content:encoded><![CDATA[<p>&gt;Жмем кнопку [Добавить].<br />
&gt; Все, репозиторий создан. Прежде чем его инициализировать и начинать с ним работать, его надо немного настроить.</p>
<p>Этого момента я не понял. Снова создал, что ли? Ты ведь уже перед этим создал репозиторий при помощи git init. Т.е. ты сейчас средствами SourceTree создаёшь клон на основе этого, только что созданного репозитория (т.е.выполняешь git clone)? Или же ты просто указываешь SourceTree где находится нужный тебе репозиторий (без лишнего клонирования)? На скрине консоли ты пишешь v:, а на скрине SourceTree у тебя указан путь c:\git_tmp. Уточняю на всякий случай, а то вдруг ты действительно клонируешь...</p>
<p>&gt;Все, репозиторий создан. Прежде чем его инициализировать и начинать с ним работать, его надо немного настроить.</p>
<p>Ты его уже инициализировал командой git init.</p>
<p>&gt;Важно! Есть один очень серьезный, и не очень приятный момент: каталоги верхнего уровня не могут иметь первым символом неанглийские буквы. SourceTree, как выяснилось, такие названия не обрабатывает вообще.</p>
<p>Весьма существенный минус, на мой взгляд (ложка дёгтя). <img src="https://autolisp.ru/wp-includes/images/smilies/icon_sad.gif" alt=":(" class="wp-smiley" /> Порой переименовывание каталогов может оказаться неприемлемым, т.к. их имена фигурирую в различного рода настройках различных приложений, в т.ч. и в административных утилитах.</p>
<p>&gt; И, наконец, последнее: убираем все файлы из корня сетевого диска:<br />
&gt; /*.*</p>
<p>Не только файлы, но и каталоги, в имени которых присутствует точка.</p>
<p>&gt;Сначала создадим центральный репозиторий, внутри которого не хранятся собственно рабочие файлы. Вызываем терминал, меняем в нем текущий каталог на v:\VersionControl и потом выполняем команду<br />
&gt; git init --bare</p>
<p>Правильней так: "не содержащий рабочего дерева (working tree)".</p>
<p>&gt;По окончании процесса у нас есть рабочая копия, хранящаяся на сервере. Пришло время преобразовать ее в нормальный центральный репозиторий.</p>
<p>На каком ещё "сервере"? Ты ведь работал с виртуальным диском который, по сути - один из каталогов твоего диска D:\. Я не понял, что ты подразумеваешь под "преобразовать"... </p>
<p>&gt; Теперь собственно клонирование «рабочей копии» в «центральный» репозиторий:<br />
&gt; git clone −−bare<br />
&gt;<br />
&gt; Учитывая наши условия, получим нечто типа:<br />
&gt; git clone --bare v:/ v:/versioncontrol</p>
<p>А зачем ты перед этим делал git init --bare для каталога v:\VersionControl? В этом не было необходимости, т.к. git clone --bare v:/ v:/versioncontrol и так сделает всё как надо.</p>
<p>&gt;Возвращаемся в SourceTree, и клонируем репозиторий:</p>
<p>Знакомая картинка... Выше ты её уже скрин с обозначенными путями (хотя там должны были пути начинаться с v:\). <img src="https://autolisp.ru/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<p>&gt; Возвращаемся в SourceTree, и клонируем репозиторий:<br />
&gt; Указываем, откуда клонируем, куда, задаем имя. Остальные настройки не трогаем. Нажимаем Клонировать.</p>
<p>На скрине указан неверный каталог источника: вместо v:\ должен был быть указан v:\VersionControl, ведь именно его ты назначаешь "центральным" и доступным для выполнения git push.</p>
<p>&gt; Теперь для обоих репозиториев (и того, который на сервере, и локального) устанавливаем в качестве внешнего наш V:\_GIT_VersionControl.</p>
<p>А почему на том же самом локальном диске? В чём соль? Я ещё понимаю, если у тебя:<br />
1) рабочий репозиторий - непосредственно для работы.</p>
<p>2) тот, который ты назвал "центральным" (я бы предпочёл назвать его "расшаренным") так же находится на твоём диске, но доступен по сети др. программерам для выполнения git fetch (т.е. доступен только для чтения).</p>
<p>3) а этот самый _GIT_VersionControl находится в сетевом каталоге, доступный всем программерам только для чтения и лишь их "боссу" для записи - вот это действительно "центральный" репозиторий. </p>
<p>Причём у каждого девелопера свои рабочий и расшаренный репозитории. Каждый девелопер в настройках своих расшаренных и рабочих репозиториев имеет записи для "внешних репозиториев" (remote repositories).</p>
<p>&gt;Возвращаемся в SourceTree:</p>
<p>Что за муть показана на скрине в тексте  файла Settings/Users/Users.ini? Сплошные кракозяблы... Смотрю SourceTree серьёзно не дружит с кирилицей, хотя вроде комменты к комитам показывает корректно...</p>
<p>Этот скрин: <a href="http://autolisp.ru/wp-content/uploads/2014/03/sourcetreesetup_041.png" rel="nofollow">http://autolisp.ru/wp-content/uploads/2014/03/sourcetreesetup_041.png</a> как-то выподает из общей логики повествования. Неплохо было бы пояснить, что user.name и user.email нужно хранить в конфиг-файлах git (каждый конфиг имеет свою область влияния).</p>
<p>&gt; Крайне желательно нажать кнопку “Обновить”, потом выбрать ветку, с которой надо вытаскивать. Все, жмем ОК.</p>
<p>Неплохо было бы пояснить почему: потому, что если кто-то уже отправил свой коммит в центральный репозиторий, то ты не сможешь сделать этого до тех пор, пока предварительно не синхронизируешься с центральным репом.</p>
<p>&gt;В любой момент, имея несколько ревизий, можно восстановить состояние рабочей копии – достаточно в SourceTree выполнить двойной клик на нужной ревизии. Обновление выполняется практически моментально.</p>
<p>Что подразумевается по "ревизией"? Коммиты, что ли?</p>
<p>&gt; Для объединения желательно выбрать основную (master) ветку и объединять именно с ней.</p>
<p>Чем обусловлено это самое "желательно"? Ветки, при необходимости, можно закидывать и в центральный репозиторий, как альтернативные пути развития ПО.</p>
<p>&gt; <a href="http://autolisp.ru/wp-content/uploads/2014/03/sourcetree_branch05.png" rel="nofollow">http://autolisp.ru/wp-content/uploads/2014/03/sourcetree_branch05.png</a></p>
<p>Весьма неинформативные имена коммитов. </p>
<p>&gt; 1. Работа выполняется в своем собственном окне</p>
<p>Этой фразы я не понял. Имеется в виду то, что это GUI-приложение, а не консольное?</p>
<p>&gt; Необходимость работы с терминалом при создании центрального репозитория</p>
<p>Странно... Может ты просто плохо искал?</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Андрей</title>
		<link>https://autolisp.ru/2014/03/19/cvs_and_windows_clients_sourcertee/comment-page-1/#comment-57450</link>
		<dc:creator><![CDATA[Андрей]]></dc:creator>
		<pubDate>Wed, 09 Sep 2015 07:26:08 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=1791#comment-57450</guid>
		<description><![CDATA[Я не забываю и про это даже не заикался. Честно говоря, по твоему ответу я так и не понял, каким образом контролирование исходников и откомпилированного кода соотносится к наличию каталогов, не относящихся к ПО и его исходникам: __Градостроительство, Изыскания и т.п. Зачем лепить эти каталоги и потом прописывать фильтры их игнорирования. Кто-то может добавить туда новый каталог, а ты этого не заметишь - в результате существует вероятность, что этот каталог может попасть в состав твоих коммитов. Ну да ладно, об этом я уже писал выше. Дело твоё.

Так и не дождался ответа на вопрос, для чего присутствуют фильтры !App*/**/, !dotnet/**/ и !settings/**/. :(]]></description>
		<content:encoded><![CDATA[<p>Я не забываю и про это даже не заикался. Честно говоря, по твоему ответу я так и не понял, каким образом контролирование исходников и откомпилированного кода соотносится к наличию каталогов, не относящихся к ПО и его исходникам: __Градостроительство, Изыскания и т.п. Зачем лепить эти каталоги и потом прописывать фильтры их игнорирования. Кто-то может добавить туда новый каталог, а ты этого не заметишь - в результате существует вероятность, что этот каталог может попасть в состав твоих коммитов. Ну да ладно, об этом я уже писал выше. Дело твоё.</p>
<p>Так и не дождался ответа на вопрос, для чего присутствуют фильтры !App*/**/, !dotnet/**/ и !settings/**/. <img src="https://autolisp.ru/wp-includes/images/smilies/icon_sad.gif" alt=":(" class="wp-smiley" /></p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Кулик Алексей aka kpblc</title>
		<link>https://autolisp.ru/2014/03/19/cvs_and_windows_clients_sourcertee/comment-page-1/#comment-57446</link>
		<dc:creator><![CDATA[Кулик Алексей aka kpblc]]></dc:creator>
		<pubDate>Tue, 08 Sep 2015 21:25:44 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=1791#comment-57446</guid>
		<description><![CDATA[У меня на работе именно через систему контроля версий распространяются как исходные коды, так и готовые к употреблению модули - как .NET, так и lsp. Ты не забывай, что не все и не всегда используют только С# - вполне могут быть и другие варианты.]]></description>
		<content:encoded><![CDATA[<p>У меня на работе именно через систему контроля версий распространяются как исходные коды, так и готовые к употреблению модули - как .NET, так и lsp. Ты не забывай, что не все и не всегда используют только С# - вполне могут быть и другие варианты.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Кулик Алексей aka kpblc</title>
		<link>https://autolisp.ru/2014/03/19/cvs_and_windows_clients_sourcertee/comment-page-1/#comment-57443</link>
		<dc:creator><![CDATA[Кулик Алексей aka kpblc]]></dc:creator>
		<pubDate>Tue, 08 Sep 2015 21:16:02 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=1791#comment-57443</guid>
		<description><![CDATA[Никуда не делся. Он упал в премодерирование.]]></description>
		<content:encoded><![CDATA[<p>Никуда не делся. Он упал в премодерирование.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Андрей</title>
		<link>https://autolisp.ru/2014/03/19/cvs_and_windows_clients_sourcertee/comment-page-1/#comment-57442</link>
		<dc:creator><![CDATA[Андрей]]></dc:creator>
		<pubDate>Tue, 08 Sep 2015 18:12:18 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=1791#comment-57442</guid>
		<description><![CDATA[Не понял... А куда пропал мой самый первый, самый большой коммент с кучей замечаний и вопросов?]]></description>
		<content:encoded><![CDATA[<p>Не понял... А куда пропал мой самый первый, самый большой коммент с кучей замечаний и вопросов?</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Андрей</title>
		<link>https://autolisp.ru/2014/03/19/cvs_and_windows_clients_sourcertee/comment-page-1/#comment-57441</link>
		<dc:creator><![CDATA[Андрей]]></dc:creator>
		<pubDate>Tue, 08 Sep 2015 16:18:42 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=1791#comment-57441</guid>
		<description><![CDATA[В общем, я споткнулся об эту фразу:
&gt;По окончании процесса у нас есть рабочая копия, хранящаяся на сервере. Пришло время преобразовать ее в нормальный центральный репозиторий.
&gt;Сначала создадим центральный репозиторий, внутри которого не хранятся собственно рабочие файлы. 

Перестал что либо понимать, в виду чего далее пока не читал. :( Продолжу после того, как ты внесёшь некоторую ясность в обозначенные мною выше вопросы.]]></description>
		<content:encoded><![CDATA[<p>В общем, я споткнулся об эту фразу:<br />
&gt;По окончании процесса у нас есть рабочая копия, хранящаяся на сервере. Пришло время преобразовать ее в нормальный центральный репозиторий.<br />
&gt;Сначала создадим центральный репозиторий, внутри которого не хранятся собственно рабочие файлы. </p>
<p>Перестал что либо понимать, в виду чего далее пока не читал. <img src="https://autolisp.ru/wp-includes/images/smilies/icon_sad.gif" alt=":(" class="wp-smiley" /> Продолжу после того, как ты внесёшь некоторую ясность в обозначенные мною выше вопросы.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Андрей</title>
		<link>https://autolisp.ru/2014/03/19/cvs_and_windows_clients_sourcertee/comment-page-1/#comment-57440</link>
		<dc:creator><![CDATA[Андрей]]></dc:creator>
		<pubDate>Tue, 08 Sep 2015 16:14:28 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=1791#comment-57440</guid>
		<description><![CDATA[Вообще, на мой взгляд, плохая идея - мешать мух с котлетами. Не вижу смысла в одном каталоге хранить исходный код проектов наряду с каталогами содержимое которое не имеет никакого отношения к программированию (которые нужно прописывать в настройках игнорирования). Добавив очередной каталог, аля &quot;Вася Пупкин - чемпион&quot;, тебе снова придётся вносить правки в настройки игнорирования. В один прекрасный момент ты забудешь это сделать, т.к. тебя кто-то будет отвлекать по телефону или стоять над душёй с глупым вопросом, в результате чего &quot;Вася Пупкин&quot; войдёт в состав очередного коммита (что может быть обнаружено тобой не сразу). 

К сожалению, невозможно задать такое правило:
*/
!./(Apps&#124;dotnet&#124;settings)/

Это обусловлено тем, что:
An optional prefix &quot;!&quot; which negates the pattern; any matching file excluded by a previous pattern will become included again. It is not possible to re-include a file if a parent directory of that file is excluded. Git doesn’t list excluded directories for performance reasons, so any patterns on contained files have no effect, no matter where they are defined.

Т.о. лучше заблаговременно отделять мух от котлет, дабы не создавать самому себе в прок лишних проблем в будущем.]]></description>
		<content:encoded><![CDATA[<p>Вообще, на мой взгляд, плохая идея - мешать мух с котлетами. Не вижу смысла в одном каталоге хранить исходный код проектов наряду с каталогами содержимое которое не имеет никакого отношения к программированию (которые нужно прописывать в настройках игнорирования). Добавив очередной каталог, аля "Вася Пупкин - чемпион", тебе снова придётся вносить правки в настройки игнорирования. В один прекрасный момент ты забудешь это сделать, т.к. тебя кто-то будет отвлекать по телефону или стоять над душёй с глупым вопросом, в результате чего "Вася Пупкин" войдёт в состав очередного коммита (что может быть обнаружено тобой не сразу). </p>
<p>К сожалению, невозможно задать такое правило:<br />
*/<br />
!./(Apps|dotnet|settings)/</p>
<p>Это обусловлено тем, что:<br />
An optional prefix "!" which negates the pattern; any matching file excluded by a previous pattern will become included again. It is not possible to re-include a file if a parent directory of that file is excluded. Git doesn’t list excluded directories for performance reasons, so any patterns on contained files have no effect, no matter where they are defined.</p>
<p>Т.о. лучше заблаговременно отделять мух от котлет, дабы не создавать самому себе в прок лишних проблем в будущем.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Андрей</title>
		<link>https://autolisp.ru/2014/03/19/cvs_and_windows_clients_sourcertee/comment-page-1/#comment-57439</link>
		<dc:creator><![CDATA[Андрей]]></dc:creator>
		<pubDate>Tue, 08 Sep 2015 16:01:04 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=1791#comment-57439</guid>
		<description><![CDATA[&gt;Фактически эти данные нужны только для отслеживания «кто внес изменения». Поэтому заполнять можно любой абракадаброй, 

Позже это может выйти боком, если вдруг по каким-либо причинам реально потребуется связаться с разработчиком.

&gt;Эти данные хранятся в специальном текстовом файле с очень странным (с точки зрения пользователя Windows) именем .gitignore.

На самом деле файлов с настройками игнорирования может быть несколько и имеют они разные имена: .gitignore (находятся в отслеживаемых каталогах), ./.git/info/exclude, а так же шаблоны из файла, указанного в переменной core.excludesFile любого из конфигурационных файлов git. В зависимости от необходимой области действия шаблон задаётся в том или ином файле игнорирования.

&gt;Если строка начинается с символа !, то все, что за ней, обязательным образом обрабатывается
Неверно. Это символ инвертирования результата.

&gt;Проведем небольшой эксперимент. Создадим «временный» репозиторий (в любом каталоге), в его .gitignore вставим наши строки, добавим туда пару каталогов и несколько файлов, отвечающих требованиям игнорирования:

Можно сделать проще: команды git add и git rm поддерживают опцию -n (либо ключ --dry-run). Опция позволяет посмотреть результат работы команды, фактически не выполняя её. Возможно, что и в GUI SourceTree должна присутствовать возможность выполнять аналогичное действие. Если есть возможность открыть консоль git из контекстного меню в проводнике windows (что-то вроде этого: http://www.git-for-win.red-bee.ru/index.html?cui_or_gui.html ), то запустив команду git rm -n &quot;*&quot; можно посмотреть состав выбранных файлов.

&gt;Как видно, такой файл в репозиторий не попадет: он отвечает настройкам .gitignore. И никаких дополнительных действий по указыванию таких файлов выполнять уже не надо.

Если какой либо файл, отсеиваемый фильтрами, всё же по каким-либо соображениям должен быть отслеживаемым, то применительно к нему команда git add должна запускаться с опцией -f.

&gt;Допустим, что мы точно знаем, какие каталоги нам надо сохранять (остальные отправляем в игнор). Это будут каталоги Apps, Settings, ну и, к примеру, DotNet. Нам нужны будут эти каталоги и все их содержимое, независимо от степени вложенности.
&gt;# Элементы, которые надо сохранить
&gt;!App*/
&gt;!App*/**/
&gt;!dotnet/
&gt;!dotnet/**/
&gt;!settings/
&gt;!settings/**/

На мой взгляд, это несколько странный набор фильтров... Почему было не ограничиться таким вариантом(?):
#*********************************************
# Элементы, которые надо сохранить
!Apps/
!dotnet/
!settings/
#*********************************************

Согласно указанным мною фильтрам из игнорирования исключаются обозначенные каталоги и всё их содержимое (рекурсивно). Насколько я тебя понял - тебе нужно именно это. В соответствии с процитированным текстом, а так же с этим скрином: http://autolisp.ru/wp-content/uploads/2014/03/svn_folderstruct.png, у тебя только один каталог, имя которого соответствует App* - это каталог Apps, поэтому и в фильтре можно указывать сразу Apps вместо App*.

&gt;По окончании процесса у нас есть рабочая копия, хранящаяся на сервере. Пришло время преобразовать ее в нормальный центральный репозиторий.

Стоп... На каком &quot;сервере&quot;? Ты же работал с локальным каталогом c:\git_tmp (согласно скрину http://autolisp.ru/wp-content/uploads/2014/03/st_gui03.png )...

&gt; На самом деле это не столько создание, сколько “клонирование”. На диске C: создаем каталог git_tmp:

Ты ведь его уже создал ещё в самом начале (согласно обозначенному выше скрину)...]]></description>
		<content:encoded><![CDATA[<p>&gt;Фактически эти данные нужны только для отслеживания «кто внес изменения». Поэтому заполнять можно любой абракадаброй, </p>
<p>Позже это может выйти боком, если вдруг по каким-либо причинам реально потребуется связаться с разработчиком.</p>
<p>&gt;Эти данные хранятся в специальном текстовом файле с очень странным (с точки зрения пользователя Windows) именем .gitignore.</p>
<p>На самом деле файлов с настройками игнорирования может быть несколько и имеют они разные имена: .gitignore (находятся в отслеживаемых каталогах), ./.git/info/exclude, а так же шаблоны из файла, указанного в переменной core.excludesFile любого из конфигурационных файлов git. В зависимости от необходимой области действия шаблон задаётся в том или ином файле игнорирования.</p>
<p>&gt;Если строка начинается с символа !, то все, что за ней, обязательным образом обрабатывается<br />
Неверно. Это символ инвертирования результата.</p>
<p>&gt;Проведем небольшой эксперимент. Создадим «временный» репозиторий (в любом каталоге), в его .gitignore вставим наши строки, добавим туда пару каталогов и несколько файлов, отвечающих требованиям игнорирования:</p>
<p>Можно сделать проще: команды git add и git rm поддерживают опцию -n (либо ключ --dry-run). Опция позволяет посмотреть результат работы команды, фактически не выполняя её. Возможно, что и в GUI SourceTree должна присутствовать возможность выполнять аналогичное действие. Если есть возможность открыть консоль git из контекстного меню в проводнике windows (что-то вроде этого: <a href="http://www.git-for-win.red-bee.ru/index.html?cui_or_gui.html" rel="nofollow">http://www.git-for-win.red-bee.ru/index.html?cui_or_gui.html</a> ), то запустив команду git rm -n "*" можно посмотреть состав выбранных файлов.</p>
<p>&gt;Как видно, такой файл в репозиторий не попадет: он отвечает настройкам .gitignore. И никаких дополнительных действий по указыванию таких файлов выполнять уже не надо.</p>
<p>Если какой либо файл, отсеиваемый фильтрами, всё же по каким-либо соображениям должен быть отслеживаемым, то применительно к нему команда git add должна запускаться с опцией -f.</p>
<p>&gt;Допустим, что мы точно знаем, какие каталоги нам надо сохранять (остальные отправляем в игнор). Это будут каталоги Apps, Settings, ну и, к примеру, DotNet. Нам нужны будут эти каталоги и все их содержимое, независимо от степени вложенности.<br />
&gt;# Элементы, которые надо сохранить<br />
&gt;!App*/<br />
&gt;!App*/**/<br />
&gt;!dotnet/<br />
&gt;!dotnet/**/<br />
&gt;!settings/<br />
&gt;!settings/**/</p>
<p>На мой взгляд, это несколько странный набор фильтров... Почему было не ограничиться таким вариантом(?):<br />
#*********************************************<br />
# Элементы, которые надо сохранить<br />
!Apps/<br />
!dotnet/<br />
!settings/<br />
#*********************************************</p>
<p>Согласно указанным мною фильтрам из игнорирования исключаются обозначенные каталоги и всё их содержимое (рекурсивно). Насколько я тебя понял - тебе нужно именно это. В соответствии с процитированным текстом, а так же с этим скрином: <a href="http://autolisp.ru/wp-content/uploads/2014/03/svn_folderstruct.png" rel="nofollow">http://autolisp.ru/wp-content/uploads/2014/03/svn_folderstruct.png</a>, у тебя только один каталог, имя которого соответствует App* - это каталог Apps, поэтому и в фильтре можно указывать сразу Apps вместо App*.</p>
<p>&gt;По окончании процесса у нас есть рабочая копия, хранящаяся на сервере. Пришло время преобразовать ее в нормальный центральный репозиторий.</p>
<p>Стоп... На каком "сервере"? Ты же работал с локальным каталогом c:\git_tmp (согласно скрину <a href="http://autolisp.ru/wp-content/uploads/2014/03/st_gui03.png" rel="nofollow">http://autolisp.ru/wp-content/uploads/2014/03/st_gui03.png</a> )...</p>
<p>&gt; На самом деле это не столько создание, сколько “клонирование”. На диске C: создаем каталог git_tmp:</p>
<p>Ты ведь его уже создал ещё в самом начале (согласно обозначенному выше скрину)...</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Кулик Алексей aka kpblc</title>
		<link>https://autolisp.ru/2014/03/19/cvs_and_windows_clients_sourcertee/comment-page-1/#comment-56668</link>
		<dc:creator><![CDATA[Кулик Алексей aka kpblc]]></dc:creator>
		<pubDate>Thu, 02 Jul 2015 07:39:17 +0000</pubDate>
		<guid isPermaLink="false">http://autolisp.ru/?p=1791#comment-56668</guid>
		<description><![CDATA[Я пробовал использовать этот софт. Но мне он как-то не очень понравился - чисто с эстетической точки зрения. Хотя, насколько я помню, свои задачи выполнял в нормальном режиме )]]></description>
		<content:encoded><![CDATA[<p>Я пробовал использовать этот софт. Но мне он как-то не очень понравился - чисто с эстетической точки зрения. Хотя, насколько я помню, свои задачи выполнял в нормальном режиме )</p>
]]></content:encoded>
	</item>
</channel>
</rss>
