Системы контроля версий и клиенты для Windows: GIT и GitExtension

GIT и GitExtension

Установка клиента
Скачиваем установочный пакет (около 36 МБ) и устанавливаем программу:

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

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

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

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

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

  1. Дополнительные иконки я ставил – вреда от них никакого, а удалить их можно в любой момент.
  2. Интеграцию с WindowsExplorerя не менял, посчитав, что расширенное меню лучше упрощенного
  3. Я устанавливал самую нижнюю галочку (Использовать TrueType-шрифты для консоли), чтобы не получить в консоли (если она понадобится) непонятные символы в качестве сообщений.

Следом идет запрос на метод запуска GIT:

Фактически идет выбор между первым и вторым вариантами. Первый – использование только командной строки git, без изменения переменной PATH. Если не пугает достаточно большое количество текста, которое придется вводить вручную – можно и эту опцию выбрать. Но я предпочел вторую: использовать git внутри командной строки Windows.
Следом идет выбор, что делать с символами окончания и перевода строк (как в исходниках, так и в коммитах):


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

Для начала установим имя пользователя и адрес электронной почты (по уже установившейся привычке я ставлю реальные значения).
После окончания установки, как обычно, выполняем substдля подключения виртуального диска, а также внутри этого диска создаем каталог VersionControlдля центрального репозитория.

Создание центрального репозитория
Центральный репозиторий в GitExtensionможно создать несколькими способами. Первый – это выбрать каталог, вызвать контекстное меню и в нем – GitExtCreatenewrepository…:

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

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

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

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

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

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

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

Создание локальной рабочей копии на компьютере разработчика
Теперь на диске C: создадим каталог, например, git_temp и в этот каталог выполним клонирование центрального репозитория:

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

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

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

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

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

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

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

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

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

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

Синхронизация изменений с рабочими копиями
Теперь осталось фактически только выполнить синхронизацию репозитория с серверной копией. В GitExtension открываем репозиторий на диске v: и выполняем импорт данных из репозитория (Pull):

Обратите внимание: выполняется вливание, указана ветка, которая обрабатывается, ветки объединяются.
Синхронизация изменений с рабочими копиями
В окне GetExtension выделим ревизию, которую надо восстановить, и вызовем для нее контекстное меню:

В принципе, пояснения и так вполне внятны. Учитывая условия моей работы, я использую Hard (отменяются все изменения в рабочей копии).
Выводы
Достаточно мощный клиент, в некоторых вопросах превосходит SourceTree. К минусам могу отнести только не очень удобное переключение между ревизиями. А так, в целом – весьма и весьма.

Размещено в CSV, git, Новости, Прочее ПО · Метки: ,



Комментарии

Есть 2 коммент. к “Системы контроля версий и клиенты для Windows: GIT и GitExtension”
  1. Андрей пишет:

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

    Или первая... :) Это смотря кто откуда привык считать (я всегда читаю и считаю сверху вниз).

  2. Андрей пишет:

    Замечание по тексту: оченьмногословлепишьбезпробела. Возможно, что у тебя плохо работает клавиша пробела (как на моём ноутбуке). :(

Поделитесь своим мнением


Я не робот.