Перейти к содержанию

Работа с проектами на Visual Studio с использованием TortoiseGit и GitVerse-сервером

Это первая часть, далее см. часть 2

Основные сущности:

Репозиторий — некий каталог файловой системы, в котором находятся служебные файлы гит помимо файлов.
Локальный репозиторий — репозиторий, расположенный на локальном компьютере разработчика в каталоге. Именно в нём происходит разработка и фиксация изменений, которые отправляются на внешний репозиторий. Часто в руководствах пишут "удалённый", но слово внешний понятнее.
Внешний репозиторий — репозиторий, находящийся на удаленном сервере. Это общий репозиторий, в который приходят все изменения, и из которого забираются все обновления.
Коммит (Commit) — это объект, содержащий информацию об изменённых файлах. Представляйте его себе в виде zip-архива с подписью-хешем.
Ветка (Branch) — это отдельная история изменений (коммитов) в рамках одного репозитория.

Часть 1. Установка и первоначальная настройка

1.1. Установка git на локальную машину

Скачать и установить с официального сайта Git.

Git (произносится «гит») — распределённая система управления версиями. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года.

1.2. Установка git-клиента TortoiseGit на локальную машину

Скачать и установить с официального сайта TortoiseGit. При установке, всё выбираем по умолчанию. Далее-далее.

TortoiseGit — визуальный клиент системы управления исходными кодами программ Git для ОС Microsoft Windows. Реализован как расширение проводника Windows (shell extension). Подрисовывает иконки к файлам, находящимся под управлением Git, для отображения их статуса в Git.

1.3. Регистрация на gitverse

Российская платформа, аналог github. Идём на страницу регистрации: Регистрация - Cloud.ru Console:

Там пришлось ввести - почту, телефон и еще настроить двухфакторную авторизацию. Если не устраивает, то надо поискать другой сервис. В результате успешной регистрации оказываюсь на главной странице:

1.5. Создание внешнего репозитория на сервере

Создаём новый репозиторий по шагам. Нажимаем кнопку на домашней странице "+ Новый репозиторий". Не забываем указать, что он публичный, добавляем файл readme, который удобен тем, что можно сразу его редактировать и репозиторий будет непустой. Добавляем .gitignore, в котором будем фильтровать файлы, чтобы не все загружались в репозиторий. Выглядит примерно так:

Результат создания:

1.6. Клонирование на локальную машину

Воспользуемся черепашкой для клонирования репозиториев. Для удобства я создал папку C:/GIT. У вас она может быть другая. Правой кнопкой на свободном месте и выбираем ToirtoiseGit->Clone

Появляется окно с полями ввода и чекбоксами. В верхний вставляем путь для https-ссылки. В репозитории нажимаем на кнопку КОД, убедимся что выбран HTTPS, затем щёлкаем на адрес ниже. Должна подсветиться галочка, что адрес скопирован

Вставили URL, локальный каталог заполнился автоматически:

Галочки не трогаем. Нажимаем OK. В результате у вас должно успешно скопироваться:

Проверяем файлы, переходим в каталог C:/GIT/TestModule

Всё что нужно - readme, ignore. Отмечены зелеными галочками - синхронизировано с внешним репозиторием.

В файле README.md находится текст:

# TestModule

тестовый проект учебного модуля

1.7. Проверка обновления из внешнего репозитория

Мы проверяем, что прицепились к внешнему репозиторию и можем скачивать обновления. Сейчас в web-интерфейсе дополним текст README и вытащим обновление в локальную репу. Во внешнем репозитории переходим на файл README по ссылке. Внизу страницы мы можем перейти к редактированию в браузере:

Нажимаем кнопку и добавим текст "Строка из веб-редактора":

Добавили строку и нажимаем сохранить. Там всё по-умолчанию, можно комментариев не давать. В результате будет оповещение о создании коммита:

Проверяем историю. Нажимаем кнопку коммиты, кстати их стало 2 шт. Был один.

Можете щелкнуть на коммит и увидеть какие были изменения. Очень полезно. Теперь черепашкой вытащим обновление в каталог на локальной машине. Для этого кликаем на пустое место в каталоге C:/GIT/TestModule и выбираем git pull в черепашке.

Вылезет окно с продвинутыми настройками, оставляем всё как есть. Нажимаем OK. При получении файлов обращаем внимание на изменения, которые мы утащили из внешнего репозитория.

Проверяем README.md на локалке и видим текст:

# TestModule

тестовый проект учебного модуля

Строка из веб-редактора

1.7. Проверка пуша коммита

Здесь нам надо проверить, что мы не только умеем стягивать изменения, но и заливать из локальной машины на сервер. Для этой операции необходимо вводить пароли, если скачивали через HTTPS, как в нашем примере. Либо, надо настраивать паку SSH-ключей и работать через SSH. Мы продолжим с HTTPS.

В веб-интерфейсе Настройки | Аккаунт задаём пароль для доступа по HTTPS:

Теперь переходим к локальному каталогу. Добавляем строку в файл C:/GIT/TestModule/README.md через блокнот (ну или другой ваш текстовый редактор). В итоге должно быть содержимое:

# TestModule

тестовый проект учебного модуля

Строка из веб-редактора

Строка из блокнота

Когда вы сохраните, лампочка файла будет красная:

Это значит, мы разъехались с внешним репозиторием. Так и должно быть. Нажимаем на пустое место в каталоге и выбираем TortoiseGit->Git Commit. Вылезет диалоговое окно. Там указываем сообщение:

Затем жмём commit. Успешно:

Теперь пушим изменения в репозиторий, нажимаем Push внизу. Вылезает диалоговое окно пуша, там ничего не меняем, нажимаем OK. Для первого раза вылезет Git Credential manager, где указываем учётку - сокращённое имя пользователя и пароль, указанный в настройках аккаунта:

Успешный результат:

Проверяем в веб-интерфейсе:

Готово! Для надёжности сохранения данных учётки, можете записать еще строку и сделать коммит.