Небольшое введение в систему контроля версий Git и началу работы с ней, в частности регистрация на сервисе Bitbucket, настройка среды Visul Studio и приложение Source Tree для удобной работы с репозиториями на локальном компьютере.
Платформа: Windows.
2. Условные обозначения и сокращения
Система управления версиями (СУВ) – программное обеспечение для облегчения
работы с изменяющейся информацией. Система управления версиями позволяет
хранить несколько версий одного и того же документа, при необходимости
возвращаться к более ранним версиям, определять, кто и когда сделал то или иное
изменение, и многое другое.
Репозиторий, хранилище — место, где хранятся и поддерживаются какие-либо данные.
Чаще всего данные в репозитории хранятся в виде файлов, доступных для
дальнейшего распространения по сети.
IDE (Integrated development environment) – интегрированная среда разработки.
Коммит (commit) – сохранение, фиксация (в архиве, репозитарии и др.) изменений в
программном коде.
Pull request – запрос на слияние изменений, сделанных другим(-и) разработчиками в
исходном репозитории.
Code review - систематическая проверка исходного кода программы с целью
обнаружения и исправления ошибок, которые остались незамеченными в начальной
фазе разработки.
3. Введение
Умение писать грамотный код это лишь часть работы программиста. Ему также
необходимо уметь использовать различные инструменты, позволяющие
оптимизировать, облегчить работу. Одним из таких инструментов является система
контроля версий (СКВ).
Существует несколько типов таких систем:
Распределенные: Git [1], Mercurial [2];
Централизованные: TFS [3] SVN [4], CVS [5].
Наиболее современными и функциональными являются именно распределенные
системы [6]. Они позволяют создавать много копий репозитория, вести локальные
версии без необходимости наличия удаленного сервера. Также они предоставляют
обширные возможности по работе с ветками, откат изменений, удобное ведение
истории изменений и т.д. Кроме того они работают быстрее и позволяют быстро
сохранять изменения.
Далее будет рассмотрена одна из распределенных систем: Git.
16.10.2016 3
4. Основные этапы
Для того, чтобы приступить к использованию системы контроля версий (СКВ) Git, а
также познакомиться с порядком применения ее в процессе обучения необходимо
выполнить следующие этапы:
Скачать и установить дистрибутив Git на компьютере (в зависимости от используемой ОС).
Выполнить настройку Git.
Установить и настроить дополнения к среде разработки (если необходимо).
Зарегистрироваться на сервисе удаленном сервисе (например, Bitbucket [8] или GitHub [9]),
Создать репозиторий на удаленном сервисе.
Выполнить инициализацию локального репозитория (например, из папки или из среды разработки).
Поместить локальный репозиторий в удаленный и связать их.
Проверить сервис с репозиторием на наличие нового кода.
Таким образом, выполнив эти этапы можно приступить к работе с Git и его
использованию и разработке с учетом отслеживания истории изменений.
Рассмотрим каждый этап подробнее далее.
16.10.2016 4
5. Основные этапы - пример
Загрузка
Установка
Настройка
Генерация
ключей (для
SSH)
Step 1
Git
Регистрация на
удаленном
сервисе
Настройка
аккаунта
Создание
репозитория
Step 2
Bitbucket Создание или
открытие
решения с
проектами
Инициализация
локального
репозитория
Привязка к
удаленному
репозиторию
Проверка
репозитория на
сервисе
Step 3
Visual
Studio
16.10.2016 5
7. Загрузка Git
Для загрузки Git нужно перейти на сайт http://git-scm.com/.
На домашней странице будет ссылка на загрузку свежей версии дистрибутива.
16.10.2016 7
8. Установка Git for Windows
Установка дистрибутива выполняется как и обычной программы. Необходимо
указать каталог для установки и указать некоторые параметры.
16.10.2016 8
Start
10. Установка Git for Windows
16.10.2016 10
Finish
Установка и
копирование файлов в
систему
Проверка версии после установки с помощью
командной строки.
Если успешно установлено, то версия как и сама
команда Git будет работать и отображаться.
11. Замечания по установке
В зависимости от версии ОС будет скачана та версия Git, которая есть под нее. То
есть, если 64-битна ОС, то установщик будет в такой же версии. Хотя,
принудительно можно самостоятельно выбрать нужный установщик и разрядность
его.
В последних версиях появилась такая вещь как Git Credentials Manager [10]. Это
специальное хранилище для паролей и учетных записей для сервисов, в которых
хранится исходный код. Преимущественно создавался Microsoft для поддержки
своих продуктов, поэтому в основном применяется именно с ними. По умолчанию
после установки – включен.
Если в системе уже была установлена предыдущая версия, то новая версия будет
установлена в то же расположение и обновлена. Запроса для выбора директории -
не будет.
16.10.2016 11
12. Настройка Git
Для минимальной настройки Git на компьютере необходимо задать глобальные
параметры, которые будут применяться к вносимым изменения и подписывать их.
Это значит, что указав свои параметры единожды их можно использовать во всех
приложениях и они будут указывать на Вас в истории коммитов в удаленных
репозиториях.
Такими глобальными настройками являются имя пользователя и его email. Их
можно установить следующими командами в консоли Git:
$ git c onfig - -global us er.nam e "J ohn D oe"
$ git c onfig - -global user.email johnd oe@examp le.c om
Все параметры будут помещены в файл с настройками Git .gitconfig,
расположенным в домашнем каталоге пользователя (для Windows это
<systemDrive>Users<UserName>).
16.10.2016 12
Пример глобального файла:
13. Настройка Git
Кроме глобальных настроек есть и локальные. Они применяются к конкретному
репозиторию, вернее к папке с ним на локальном компьютере.
В каждом репозитории создается скрытая папка .git, в которой размещаются все
настройки локальной версии репозитория. Именно там есть файл .config, в
котором могут быть указаны уникальные/персональные настройки.
Настройки никак не влияют на удаленные сервера – они локальны и могут быть
удалены вместе в содержимым репозитория. Однако, в таком случае стоит
помнить про то, что содержимое не отправленное на удаленный сервер может
быть утеряно.
Правило: после настройки удаленного хранилища, всегда по окончании работы
делайте коммит и отправляйте изменения на сервер в целях сохранности
работы!
16.10.2016 13
14. Настройка Git. Генерация ключей
Для завершения настройки необходимо выполнить еще одно обязательное действие.
Это сгенерировать ключи для клиента, т.е. для текущего компьютера.
Ключи используют алгоритм RSA. Это необходимо для того, чтобы клиент мог общаться
с сервером по защищенному соединению SSH или HTTPS (ключ здесь не обязателен).
Генерацию можно выполнить несколькими способами. Самый простой из них, это
воспользоваться приложением Git GUI. Будет создан и показан публичный ключ,
приватный, которым точно нельзя делиться, будет также создан (все они размещены в
папке глобальной текущего пользователя).
16.10.2016 14
• Для генерации ключа нужно выбрать пункт
меню Помощь -> Показать ключ SSH.
• Если ключ не сгенерирован, то доступна
кнопка “Создать ключ”.
16. Регистрация на сервисе Bitbucket
Для того, чтобы использовать возможности Git по полной, необходимо завести
аккаунт на одном из сервисов, предоставляющих Git на сервере для создания
удаленных репозиториев. Одними из таких популярных сервисов являются Github
[9] и Bitbucket [8].
Для регистрации нужно перейти на сайт https://bitbucket.org/ и выбрать пункт
Get Started.
16.10.2016 16
Регистрация на
сервисе бесплатна.
Для такого аккаунта
доступно создание
неограниченного
числа репозиториев,
как публичных, так и
приватных.
17. Регистрация на сервисе Bitbucket
В разные периоды времени и развития сервисов,
условия регистрации, внешний вид страниц,
порядок действий и прочее может меняться.
На момент октября 2016 регистрация стала очень
простой и понятной для любого пользователя.
Требуется всего лишь указать свой почтовый
адрес и придумать имя пользователя и пароль.
Для пароля выбирайте более менее сложное
сочетание или букв и цифр в целях защиты
вашей учетной записи от взлома!
16.10.2016 17
18. Вход в учетную запись Bitbucket
Если уже есть учетная запись, то можно выполнить
вход с помощью нее.
Также стоит помнить, что компания Atlassian начинает
объединять учетные записи, которые ранее могли быть
разными для основного сайта и Bitbucket. В связи с
этим могут поменяться условия входа и записи буд
объединены в один аккаунт, что позволит иметь доступ
ко всем сервисам и продуктам компании через него.
На момент октября 2016 – записи уже новые,
объединенные. Однако, только после некоторых
подтверждений на сайте о том, что записи
объединяются, если они были на один адрес
электронной почты!
16.10.2016 18
19. Настройка аккаунта
Под настройкой понимается установка значений нужных параметров аккаунта для
его дальнейшего использования. Одним из важнейших параметров, является
добавление набора ключей для доверенных компьютеров, с которых будут
производится обращение к сервису.
16.10.2016 19
• Для настройки нужно
перейти в раздел
Bitbucket Settings -> SSH
Keys.
• Там будет кнопка Add Key,
после чего откроется окно,
в котором нужно будет
указать название ключа и
вставить сам ключ,
сгенерированный ранее.
Добавление ключа через диалоговое окно.
Обязательное название, чтобы отличать ключи
и сам ключ.
20. Создание удаленного репозитория
Для создания нового репозитория на
сервисе нужно нажать кнопку Create
Repository в главном меню в меню
Repositories.
При создании репозитория, нужно указать
его название, тип, вид системы контроля
версий (Git, Mercurial) и основной язык.
Кроме того, можно сразу же включить
страницы Wiki и Issue-трекер.
Можно настроить интеграцию с HipChat для
получения оповещений о событиях с
репозиторием.
16.10.2016 20
21. Создание удаленного репозитория
После того, как репозиторий создан, откроется окно с его содержимым.
На данной странице указаны сведения для начала работы с ним. Так, здесь приведены команды для
загрузки кода.
16.10.2016 21
22. Создание команды
Сервис также позволяет создать
команды для группировки проектов
по категориям или группам людей,
работающих в компании.
Это позволяет также обеспечить
доступ только заинтересованному
кругу лиц к репозиториям,
создавать проекты как
объединение нескольких
репозиториев и прочее.
Команда имеет свои настройки,
планы, шаблоны и прочее.
16.10.2016 22
23. Создание команды
После создания команды доступ к ней может быть осуществлён по ссылке с ее
названием.
По умолчанию администратором будет ее создать, но в процессе можно будет
добавить новых и изменить эти настройки.
16.10.2016 23
24. Создание проекта в команде
Проекты это новая обязательная сущности
при работе с репозиториями в команде, так
как каждый из них так или иначе должен
быть размещен в одном из проектов.
Это довольно новый подход, которого ранее
не было в 2015 году.
Проект может быть приватным, по
умолчанию – публичный. Это значит, что
каждый пользователь так или иначе может
иметь к нему доступ и соответственно к
его содержимому.
16.10.2016 24
25. Создание проекта в команде
Домашняя страница проекта – предоставляет возможность создания репозитория в
нем
16.10.2016 25
26. Создание репозитория в командном проекте
Репозиторий создается аналогично тому, как это
делается для персонального аккаунта. Отличие
лишь в том, что есть проект, которые нужно
обязательно выбрать.
Если проект не создан, то можно ввести
название и будет создан пустой проект.
Однако, лучше начать с создания проекта, а
потом выбирать из имеющихся.
16.10.2016 26
27. Работа с репозиториями
Для начала работы после создания нужно либо загрузить его (клонировать), либо
поместить в него код, уже имеющийся в виде локального репозитория.
Если содержимое уже есть, то можно сделать копию (если разрешено в
настройках) в свой аккаунт – это позволит работать с содержимым независимо,
после чего можно создать запрос на слияние (Pull Request), чтобы поместить
обновления в исходный репозиторий, провести анализ кода (code review,
например).
В проекте можно будет создавать ветки для исходного кода и многое другое.
16.10.2016 27
29. Настройка Git и Visul Studio 2015
Для настройки СКВ, необходимо открыть окно настроек Visual Studio 2015 и выбрать
пункт Source Control. В данной версии Git идет сразу же вместе со средой, в
предыдущих версиях – требуется установка расширения.
Кроме того, начиная с обновления 3 идет в комплекте также расширение GitHub
которое позволяет удобно работать с данным сервисом в среде.
16.10.2016 29
30. Инициализация репозитория в Visual Studio 2015
Открываем или создаем проект в Visual Studio. Далее,
кликаем правой кнопкой мыши по открытому решению.
Выбираем пункт меню – Add Solution to Source
Control…
По умолчанию будет использоваться та СКВ, которая
была установлена ранее в настройках.
Данная операция справедлива как для Git, так и для
TFS. Операция добавления кода в СКВ унифицирована.
После создания репозитория все файлы помечаются как
успешно добавленные, а также создается коммит с
файлами в проекте, если они имели место быть. Это
сделано автоматически в среде (первый коммиит с
файлами .gitignore, второй – с файлами проекта).
При этом, в каталоге с проектом появится скрытая
папка .git. В ней содержатся файлы с параметрами
репозитория, включающие хэши, сведения о текущем
указателе на коммит, история изменений, параметры
репозитория.
16.10.2016 30
31. Работа с Git в Visual Studio 2015
Начиная с версии 2015 среды разработки все операции
оп работе с СКВ перенесены в панель Team Explorer. Это
позволяет иметь унифицированное место для работы с
историей, смотреть историю изменений и прочее. Там же
доступны операции по работе с ветками, просмотра
изменений и синхронизация.
Изменения – это список файлов, измененных и которые
нужно зафиксировать (сделать коммит).
Синхронизация это комбинированная операция, сделанная
разработчиками среды. Она построена на основе
нескольких базовых операций Git – pull and push. Идея
состоит в том, что перед отправкой изменений
выполняется получение версии содержимого с сервера,
слияние, и только потом отправка или, если есть
конфликты – после их разрешения.
16.10.2016 31
33. Приложение SourceTree
Данное приложение позволяет удобно работать с репозиториями на локальном
компьютере и успешно отслеживать все их, работать с удаленными репозиториями,
вести учет изменений, обрабатывать слияние веток, видеть полную историю
изменений и т.п.
Таким образом, для удобства работы можно использовать данное приложение. Оно
позволит в удобном интерфейсе выполнять основные команды, видеть визуально
изменения с блоком сравнения и многое другое.
Приложение бесплатное для использования в любых целях.
Более подробные сведения можно найти в интернете по его использованию.
https://www.sourcetreeapp.com/
16.10.2016 33
36. Связывание локального репозитория
с удаленным
Для того, чтобы связать локальный репозиторий с локальным необходимо указать
в параметрах репозитория, созданного на компьютере, удаленный адрес. Это
называется remote. Их может быть много, но обычно создается как минимум один
– для указания сервера, который будет использоваться всеми разработчиками как
единое место размещения последнего актуального кода.
После создания репозитория можно сделать начало гораздо более простым.
Просто клонировать его. В таком случае все настройки по удаленному серверу
автоматически будут сохранены и могут быть использованы в дальнейшем. Этот
случай подходит для новых или существующих репозиториев, с которыми нужно
быстро начать работу.
Если же необходимо поместить имеющееся содержимое в новый репозиторий,
пустой еще, то нужно пройти другую последовательность шагов. 1)
инициализировать локальный репозиторий, 2) добавить вручную удаленную ветку, 3)
отправить изменения.
16.10.2016 36
37. Связывание локального репозитория
с удаленным
Нужно открыть Git Bash/ CMD (в зависимости от того, как настроена работа с
консолью на конкретном локальном компьютере) и выполнить следующие команды:
$ git remote add origin
git@bitbucket.org:exadeldotnettraining /gitstartlesson.git
$git push -u origin –all
Команда создаст ссылку на удаленный сервер – origin. Вторая – отправит все
изменения включая метки на удаленный сервер.
После этого, все файлы, помещенные в репозиторий и зафиксированные, будут
отправлены на сервер в созданный ранее репозиторий (адрес его указывается при
создании удаленной ветки origin).
Теперь команда $git p ush ( без пар амет р ов ) будет отправлять данные в
удаленную ветку origin/master автоматически, потому что будет использоваться
origin для всех подобных операций. Если удаленных веток больше, то нужно будет
указывать нужную.
16.10.2016 37
38. Проверка
Для проверки правильности настройки, необходимо проверить репозиторий,
который был загружен на сервис. Если там успешно показываются файлы проекта
и есть сведения о коммитах, то все в порядке.
Также, можно выполнить проверку путем клонирования существующего
репозитория. Для этого нужно выбрать такой репозиторий получить ссылку для
клонирования.
Например, она может иметь вид (команда) по SSH:
$ git c lone
git @bitbuck et.org: exadeld otnet training /gitst artlesson.git
Если все операции производятся нормально, это значит, что настройка выполнена
верно, Git успешно связывается с удаленным сервисом, файлы помещаются и
загружаются с него.
16.10.2016 38
39. Проверка и замечания
Первый раз, когда производится клонирования, а еще вернее – при отправке
изменнений (push) репозитория на компьютере в случае использования SSH может
потребоваться дополнительное действие, которое заключается в том, чтобы
синхронизировать ключи на сервисе. Это делается очень просто, но требуется
операция подтверждения от пользователя. Поэтому данную операцию стоит делать
в консоли, где будет показано предупреждение.
После этого появится глобальный файл knownhosts со списком хостов и ключей
(публичных, не приватных!) с которыми сопряжен и работает компьютер.
16.10.2016 39
41. Полные шаги настройки
Итого, для настройки Git и начала работы с удаленными сервисами нужно пройти
следующие шаги:
Установить и настроить Git на локальном компьютере.
Сгенерировать ключ (публичный и приватный).
Зарегистрироваться или войти в аккаунт на удаленном сервисе.
Добавить ключ с компьютера (публичный).
Создать репозиторий пустой.
Инициализировать локальный репозиторий или клонировать, отправить изменения
новые.
Синхронизировать ключи доступа (если по SSH).
16.10.2016 41
42. Заключение
В данной презентации били рассмотрены основные моменты, необходимые для
начала работы с Git, а также его использованию при работе в среде Visual
Studio.
В заключении можно отметить, что данная презентация на является максимально
полной и охватывающей данную тему. Для более подробного ознакомления
предлагается использовать разработанное руководство, а также дополнительные
материалы, посвященные Git и работе с ним. Кроме того, можно познакомиться с
документацией на портале Bitbucket [8], которая содержит сведения для работы с
удаленными репозиториями.
Целью данной презентации было дать общее понятие как начать работать и что
нужно чтобы начать. Содержатся сведения о том, как можно начать работу с Git, а
также настроить необходимые средства для роботы.
16.10.2016 42
43. Список использованных источников
1. Официальный сайт Git - http://git-scm.com/
2. Официальный сайт Mercurial - http://mercurial.selenic.com/
3. Team Foundation Service - http://tfs.visualstudio.com/
4. Официальный сайт Subversion - http://subversion.tigris.org/
5. Официальный сайт CVS - http://cvs.nongnu.org/
6. Pro Git (book, documentation) - http://git-scm.com/documentation
7. Git Source Control Provider - http://gitscc.codeplex.com/
8. Хостинг исходного кода Bitbucket - https://bitbucket.org/
9. Хостинг исходного кода GitHub - https://github.com/
10. Secure Git credential storage for Windows - https://github.com/Microsoft/Git-Credential-
Manager-for-Windows
11. SourceTree application - https://www.sourcetreeapp.com/
16.10.2016 43
44. Дополнительные ресурсы
Удаленные хостинги для хранения репозиториев:
Visual studio Team Services - https://www.visualstudio.com/team-services/
Видео:
Using Git and GitHub - https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Using-Git-and-GitHub
Статьи и сайты с документацией:
https://githowto.com/ru
https://www.atlassian.com/git/
Курсы:
Git Fundamentsls - https://www.pluralsight.com/courses/git-fundamentals
How Git Works - https://www.pluralsight.com/courses/how-git-works
Advanced Git Tips and Tricks - https://www.pluralsight.com/courses/git-advanced-tips-tricks
Git for Visual Studio Developers - https://www.pluralsight.com/courses/git-visual-studio-developers
Using GitFlow - https://www.pluralsight.com/courses/using-gitflow
Learn Git - https://www.codecademy.com/learn/learn-git
Книги:
Pro Git 2 edition - https://git-scm.com/book/en/v2
16.10.2016 44
#2: Знакомство с системой контроля версий, порядком использования ее на курсах по программированию.
#4: Рассказать, зачем это нужно кратко и отметить основные положительные моменты от этого.
#37: Показать как выполнять помещение локального репозитория кода в нем в удаленный (в ветку origin).
#38: Показать как выполнять помещение локального репозитория кода в нем в удаленный (в ветку origin).
#39: Проверка удаленного репозитория, чтобы там был нужный код и нужный коммит.
#43: Здесь подвести итог данной вводной презентации.
Можно также сказать, что если есть необходимость в других презентацию по данной тематике, то их можно сделать тоже и продемонстрировать. Например, по деталям работы с серсивом Bitbucket.