Системы контроля версий и клиенты для Windows: GIT и GitExtension
Автор: Кулик Алексей aka kpblc | Дата: 19 Март 2014 · 2 коммент.
GIT и GitExtension

При установке выбираем “Устанавливать для всех пользователей”:

Выбираем установку всех дополнительных элементов:

MsysGit требуется для корректной работы GitExtension, KDiff– для поиска различий в файлах и корректного их слияния.
Если планируется интеграция этого расширения с VisualStudio, устанавливаем соответствующие элементы:

GitExtension – единственный клиент, напрямую интегрирующийся в VisualStudio. Поскольку я не особо его тестировал, пропущу это дело. Я как-то предпочитаю вручную отслеживать изменения.
Точно так же, как и для SourceTree, устанавливаем в качестве SSH-клиента PuTTY:

При установке самого MsysGit следует обратить внимание на несколько моментов:

- Дополнительные иконки я ставил – вреда от них никакого, а удалить их можно в любой момент.
- Интеграцию с WindowsExplorerя не менял, посчитав, что расширенное меню лучше упрощенного
- Я устанавливал самую нижнюю галочку (Использовать TrueType-шрифты для консоли), чтобы не получить в консоли (если она понадобится) непонятные символы в качестве сообщений.
Следом идет запрос на метод запуска GIT:
Фактически идет выбор между первым и вторым вариантами. Первый – использование только командной строки git, без изменения переменной PATH. Если не пугает достаточно большое количество текста, которое придется вводить вручную – можно и эту опцию выбрать. Но я предпочел вторую: использовать git внутри командной строки Windows.
Следом идет выбор, что делать с символами окончания и перевода строк (как в исходниках, так и в коммитах):
Учитывая, что будут отслеживаться не только исходные файлы, но и битовые (те же самые dwg), лучше оставить все «без изменений», т.е. третья опция.
Все, на этом выбор опций завершен, продолжаем установку.
После установки необходимо выполнить некоторую настройку GitExtension:
Для начала установим имя пользователя и адрес электронной почты (по уже установившейся привычке я ставлю реальные значения).
После окончания установки, как обычно, выполняем substдля подключения виртуального диска, а также внутри этого диска создаем каталог VersionControlдля центрального репозитория.

Второй состоит в вызове окна GitExtensionи выборе в нем соответствующего действия:

В принципе, разницы никакой – просто во втором случае понадобится указывать каталог, в котором будет создаваться репозиторий. Оба варианта приведут к окошку вида

Особое внимание стоит обратить на “Тип репозитория”. Сейчас мы создаем именно центральный репозиторий, т.е. надо выбирать второй вариант.
После нажатия кнопки ОК появится сообщение о том, что пустой репозиторий в каталоге v:\VersionControl успешно создан и инициализирован.
В принципе, неважно, каким путем идти – главное добиться хотя бы готовности GitExtension к выполнению коммита.
И вот тут я обнаружил момент, которого в SourceTree, например, не было.

GitExtension предоставляет встроенный модуль редактирования .gitignore. После нажатия соответствующего пункта меню появится окно вида:

Здесь я показал уже отредактированный .gitignore (по аналогии с тем, который создавался в SourceTree).
Подключение внешнего репозитория (который центральный) выполняется очень просто (не сложнее чем в SourceTree):

В диалоговом окне указываем псевдоним репозитория и каталог его расположения.

Нажимаем “Сохранить”.
Теперь осталось только “Отправить” нашу рабочую копию в центральный репозиторий:


Устанавливаем все настройки:

Обязательно устанавливаем “Подкаталог для создания” – у меня при пустом значении ничего не срабатывало. Может, я еще где накосячил, но разбираться было некогда.
Итак, если все сделано верно, в каталоге c:\git_temp\ВашПодкаталог появятся все файлы и каталоги, которые были установлены для отслеживания.

Каталоги и файлы включают в себя неанглийские символы. Вернемся в GitExtension – и при попытке выполнить коммит получим вылет программы.
Значит, придется переименовывать каталоги по аналогии с тем, как мы делали в SourceTree. При этом следует учесть: если в SourceTree было достаточно поменять первый символ, то в GitExtension надо менять наименование каталога полностью, без вариантов.

Удалим некоторые файлы и каталоги и вызовем GetExtension. Выберем наш локальный репозиторий:

Вверху окна видно, что требуется выполнить коммит:

Ну раз так просят, сделаем:

Отправляем изменения в центральный репозиторий:

При выполнении Push (отправка изменений в репозиторий) проверьте ветку, из которой и в которую выполняется перенос данных.

После выполнения Push’a открываем репозиторий V:\VersionControl (для проверки, что же там сейчас творится). Открываем закладку “Дерево файлов” и видим, что каталогов db, config и т.п. уже нет.

В то же время, если активировать предыдущий коммит, все файлы и каталоги будут на месте:

> Учитывая, что будут отслеживаться не только исходные файлы, но и битовые (те же самые dwg), лучше оставить все «без изменений», т.е. третья опция.
Или первая...
Это смотря кто откуда привык считать (я всегда читаю и считаю сверху вниз).
Замечание по тексту: оченьмногословлепишьбезпробела. Возможно, что у тебя плохо работает клавиша пробела (как на моём ноутбуке).