Начало работы с Git (версия 2016)

45
НАЧАЛО РАБОТЫ С GIT Подготовил: Кухаренко Андрей Версия: 2.0-2016.

Transcript of Начало работы с Git (версия 2016)

НАЧАЛО РАБОТЫ С GITПодготовил: Кухаренко АндрейВерсия: 2.0-2016.

Условные обозначения и сокращения Система управления версиями (СУВ) – программное обеспечение для облегчения

работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение, и многое другое.

Репозиторий, хранилище — место, где хранятся и поддерживаются какие-либо данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных для дальнейшего распространения по сети.

IDE (Integrated development environment) – интегрированная среда разработки. Коммит (commit) – сохранение, фиксация (в архиве, репозитарии и др.) изменений в

программном коде. Pull request – запрос на слияние изменений, сделанных другим(-и) разработчиками в

исходном репозитории. Code review - систематическая проверка исходного кода программы с целью

обнаружения и исправления ошибок, которые остались незамеченными в начальной фазе разработки.

03.05.2023 3

Введение

Умение писать грамотный код это лишь часть работы программиста. Ему также необходимо уметь использовать различные инструменты, позволяющие оптимизировать, облегчить работу. Одним из таких инструментов является система контроля версий (СКВ).

Существует несколько типов таких систем: Распределенные: Git [1], Mercurial [2]; Централизованные: TFS [3] SVN [4], CVS [5].

Наиболее современными и функциональными являются именно распределенные системы [6]. Они позволяют создавать много копий репозитория, вести локальные версии без необходимости наличия удаленного сервера. Также они предоставляют обширные возможности по работе с ветками, откат изменений, удобное ведение истории изменений и т.д. Кроме того они работают быстрее и позволяют быстро сохранять изменения.

Далее будет рассмотрена одна из распределенных систем: Git.

03.05.2023 4

Основные этапы

Для того, чтобы приступить к использованию системы контроля версий (СКВ) Git, а также познакомиться с порядком применения ее в процессе обучения необходимо выполнить следующие этапы:

Скачать и установить дистрибутив Git на компьютере (в зависимости от используемой ОС). Выполнить настройку Git. Установить и настроить дополнения к среде разработки (если необходимо). Зарегистрироваться на сервисе удаленном сервисе (например, Bitbucket [8] или GitHub [9]), Создать репозиторий на удаленном сервисе. Выполнить инициализацию локального репозитория (например, из папки или из среды

разработки). Поместить локальный репозиторий в удаленный и связать их. Проверить сервис с репозиторием на наличие нового кода.

Таким образом, выполнив эти этапы можно приступить к работе с Git и его использованию и разработке с учетом отслеживания истории изменений.

Рассмотрим каждый этап подробнее далее.

03.05.2023 5

Основные этапы - пример

Загрузка

Установка

Настройка

Генерация ключей (для SSH)

Step 1 Git Регистрация

на удаленном сервисе

Настройка аккаунта

Создание репозитория

Step 2 Bitbuck

et Создание или открытие решения с проектами

Инициализация локального репозитория

Привязка к удаленному репозиторию

Проверка репозитория на сервисе

Step 3 Visual Studio

03.05.2023 6

УСТАНОВКА И НАСТРОЙКА GIT

03.05.2023 7

Загрузка Git

Для загрузки Git нужно перейти на сайт http://git-scm.com/. На домашней странице будет ссылка на загрузку свежей версии

дистрибутива.

03.05.2023 8

Установка Git for Windows

Установка дистрибутива выполняется как и обычной программы. Необходимо указать каталог для установки и указать некоторые параметры.

Start

03.05.2023 9

Установка Git for Windows

03.05.2023 10

Установка Git for Windows

Finish

Установка и копирование файлов в систему

Проверка версии после установки с помощью командной строки.Если успешно установлено, то версия как и сама команда Git будет работать и отображаться.

03.05.2023 11

Замечания по установке

В зависимости от версии ОС будет скачана та версия Git, которая есть под нее. То есть, если 64-битна ОС, то установщик будет в такой же версии. Хотя, принудительно можно самостоятельно выбрать нужный установщик и разрядность его.

В последних версиях появилась такая вещь как Git Credentials Manager [10]. Это специальное хранилище для паролей и учетных записей для сервисов, в которых хранится исходный код. Преимущественно создавался Microsoft для поддержки своих продуктов, поэтому в основном применяется именно с ними. По умолчанию после установки – включен.

Если в системе уже была установлена предыдущая версия, то новая версия будет установлена в то же расположение и обновлена. Запроса для выбора директории - не будет.

03.05.2023 12

Настройка Git

Для минимальной настройки Git на компьютере необходимо задать глобальные параметры, которые будут применяться к вносимым изменения и подписывать их. Это значит, что указав свои параметры единожды их можно использовать во всех приложениях и они будут указывать на Вас в истории коммитов в удаленных репозиториях.

Такими глобальными настройками являются имя пользователя и его email. Их можно установить следующими командами в консоли Git:$ g i t config - -g loba l use r.name " J ohn Doe" $ g i t config - -g loba l use r.ema i l j ohndoe@examp le . com

Все параметры будут помещены в файл с настройками Git .gitconfig, расположенным в домашнем каталоге пользователя (для Windows это <systemDrive>\Users\<UserName>\).

Пример глобального файла:

03.05.2023 13

Настройка Git

Кроме глобальных настроек есть и локальные. Они применяются к конкретному репозиторию, вернее к папке с ним на локальном компьютере.

В каждом репозитории создается скрытая папка .git, в которой размещаются все настройки локальной версии репозитория. Именно там есть файл .config, в котором могут быть указаны уникальные/персональные настройки.

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

Правило: после настройки удаленного хранилища, всегда по окончании работы делайте коммит и отправляйте изменения на сервер в целях сохранности работы!

03.05.2023 14

Настройка Git. Генерация ключей Для завершения настройки необходимо выполнить еще одно обязательное действие.

Это сгенерировать ключи для клиента, т.е. для текущего компьютера. Ключи используют алгоритм RSA. Это необходимо для того, чтобы клиент мог общаться

с сервером по защищенному соединению SSH или HTTPS (ключ здесь не обязателен). Генерацию можно выполнить несколькими способами. Самый простой из них, это

воспользоваться приложением Git GUI. Будет создан и показан публичный ключ, приватный, которым точно нельзя делиться, будет также создан (все они размещены в папке глобальной текущего пользователя).

• Для генерации ключа нужно выбрать пункт меню Помощь -> Показать ключ SSH.

• Если ключ не сгенерирован, то доступна кнопка “Создать ключ”.

03.05.2023 15

РЕГИСТРАЦИЯ НА УДАЛЕННОМ СЕРВИСЕ

03.05.2023 16

Регистрация на сервисе Bitbucket

Для того, чтобы использовать возможности Git по полной, необходимо завести аккаунт на одном из сервисов, предоставляющих Git на сервере для создания удаленных репозиториев. Одними из таких популярных сервисов являются Github [9] и Bitbucket [8].

Для регистрации нужно перейти на сайт https://bitbucket.org/ и выбрать пункт Get Started.

Регистрация на сервисе бесплатна. Для такого аккаунта доступно создание неограниченного числа репозиториев, как публичных, так и приватных.

03.05.2023 17

Регистрация на сервисе Bitbucket

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

На момент октября 2016 регистрация стала очень простой и понятной для любого пользователя. Требуется всего лишь указать свой почтовый адрес и придумать имя пользователя и пароль.

Для пароля выбирайте более менее сложное сочетание или букв и цифр в целях защиты вашей учетной записи от взлома!

03.05.2023 18

Вход в учетную запись Bitbucket

Если уже есть учетная запись, то можно выполнить вход с помощью нее.

Также стоит помнить, что компания Atlassian начинает объединять учетные записи, которые ранее могли быть разными для основного сайта и Bitbucket. В связи с этим могут поменяться условия входа и записи буд объединены в один аккаунт, что позволит иметь доступ ко всем сервисам и продуктам компании через него.

На момент октября 2016 – записи уже новые, объединенные. Однако, только после некоторых подтверждений на сайте о том, что записи объединяются, если они были на один адрес электронной почты!

03.05.2023 19

Настройка аккаунта

Под настройкой понимается установка значений нужных параметров аккаунта для его дальнейшего использования. Одним из важнейших параметров, является добавление набора ключей для доверенных компьютеров, с которых будут производится обращение к сервису.

• Для настройки нужно перейти в раздел Bitbucket Settings -> SSH Keys.

• Там будет кнопка Add Key, после чего откроется окно, в котором нужно будет указать название ключа и вставить сам ключ, сгенерированный ранее.

Добавление ключа через диалоговое окно.Обязательное название, чтобы отличать ключи и сам ключ.

03.05.2023 20

Создание удаленного репозитория

Для создания нового репозитория на сервисе нужно нажать кнопку Create Repository в главном меню в меню Repositories.

При создании репозитория, нужно указать его название, тип, вид системы контроля версий (Git, Mercurial) и основной язык.

Кроме того, можно сразу же включить страницы Wiki и Issue-трекер.

Можно настроить интеграцию с HipChat для получения оповещений о событиях с репозиторием.

03.05.2023 21

Создание удаленного репозитория После того, как репозиторий создан, откроется окно с его содержимым. На данной странице указаны сведения для начала работы с ним. Так, здесь приведены команды для

загрузки кода.

03.05.2023 22

Создание команды

Сервис также позволяет создать команды для группировки проектов по категориям или группам людей, работающих в компании.

Это позволяет также обеспечить доступ только заинтересованному кругу лиц к репозиториям, создавать проекты как объединение нескольких репозиториев и прочее.

Команда имеет свои настройки, планы, шаблоны и прочее.

03.05.2023 23

Создание команды

После создания команды доступ к ней может быть осуществлён по ссылке с ее названием.

По умолчанию администратором будет ее создать, но в процессе можно будет добавить новых и изменить эти настройки.

03.05.2023 24

Создание проекта в команде

Проекты это новая обязательная сущности при работе с репозиториями в команде, так как каждый из них так или иначе должен быть размещен в одном из проектов.

Это довольно новый подход, которого ранее не было в 2015 году.

Проект может быть приватным, по умолчанию – публичный. Это значит, что каждый пользователь так или иначе может иметь к нему доступ и соответственно к его содержимому.

03.05.2023 25

Создание проекта в команде

Домашняя страница проекта – предоставляет возможность создания репозитория в нем

03.05.2023 26

Создание репозитория в командном проекте

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

Если проект не создан, то можно ввести название и будет создан пустой проект.

Однако, лучше начать с создания проекта, а потом выбирать из имеющихся.

03.05.2023 27

Работа с репозиториями

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

Если содержимое уже есть, то можно сделать копию (если разрешено в настройках) в свой аккаунт – это позволит работать с содержимым независимо, после чего можно создать запрос на слияние (Pull Request), чтобы поместить обновления в исходный репозиторий, провести анализ кода (code review, например).

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

03.05.2023 28

НАСТРОЙКА СРЕДЫ РАЗРАБОТКИ

03.05.2023 29

Настройка Git и Visul Studio 2015 Для настройки СКВ, необходимо открыть окно настроек Visual Studio 2015 и выбрать

пункт Source Control. В данной версии Git идет сразу же вместе со средой, в предыдущих версиях – требуется установка расширения.

Кроме того, начиная с обновления 3 идет в комплекте также расширение GitHub которое позволяет удобно работать с данным сервисом в среде.

03.05.2023 30

Инициализация репозитория в Visual Studio 2015 Открываем или создаем проект в Visual Studio. Далее,

кликаем правой кнопкой мыши по открытому решению. Выбираем пункт меню – Add Solution to Source Control…

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

Данная операция справедлива как для Git, так и для TFS. Операция добавления кода в СКВ унифицирована.

После создания репозитория все файлы помечаются как успешно добавленные, а также создается коммит с файлами в проекте, если они имели место быть. Это сделано автоматически в среде (первый коммиит с файлами .gitignore, второй – с файлами проекта).

При этом, в каталоге с проектом появится скрытая папка .git. В ней содержатся файлы с параметрами репозитория, включающие хэши, сведения о текущем указателе на коммит, история изменений, параметры репозитория.

03.05.2023 31

Работа с Git в Visual Studio 2015

Начиная с версии 2015 среды разработки все операции оп работе с СКВ перенесены в панель Team Explorer. Это позволяет иметь унифицированное место для работы с историей, смотреть историю изменений и прочее. Там же доступны операции по работе с ветками, просмотра изменений и синхронизация.

Изменения – это список файлов, измененных и которые нужно зафиксировать (сделать коммит).

Синхронизация это комбинированная операция, сделанная разработчиками среды. Она построена на основе нескольких базовых операций Git – pull and push. Идея состоит в том, что перед отправкой изменений выполняется получение версии содержимого с сервера, слияние, и только потом отправка или, если есть конфликты – после их разрешения.

03.05.2023 32

ATLASSIAN SOURCETREE

03.05.2023 33

Приложение SourceTree

Данное приложение позволяет удобно работать с репозиториями на локальном компьютере и успешно отслеживать все их, работать с удаленными репозиториями, вести учет изменений, обрабатывать слияние веток, видеть полную историю изменений и т.п.

Таким образом, для удобства работы можно использовать данное приложение. Оно позволит в удобном интерфейсе выполнять основные команды, видеть визуально изменения с блоком сравнения и многое другое.

Приложение бесплатное для использования в любых целях. Более подробные сведения можно найти в интернете по его

использованию. https://www.sourcetreeapp.com/

03.05.2023 34

03.05.2023 35

СВЯЗЫВАНИЕ ЛОКАЛЬНОГО СОДЕРЖИМОГО С УДАЛЕННЫМ

03.05.2023 36

Связывание локального репозитория с удаленным

Для того, чтобы связать локальный репозиторий с локальным необходимо указать в параметрах репозитория, созданного на компьютере, удаленный адрес. Это называется remote. Их может быть много, но обычно создается как минимум один – для указания сервера, который будет использоваться всеми разработчиками как единое место размещения последнего актуального кода.

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

Если же необходимо поместить имеющееся содержимое в новый репозиторий, пустой еще, то нужно пройти другую последовательность шагов. 1) инициализировать локальный репозиторий, 2) добавить вручную удаленную ветку, 3) отправить изменения.

03.05.2023 37

Связывание локального репозитория с удаленным

Нужно открыть Git Bash/ CMD (в зависимости от того, как настроена работа с консолью на конкретном локальном компьютере) и выполнить следующие команды: $ g i t r em o t e a d d o r i g i n g i t @ b i t b uc k e t . o r g : ex a d e l do t n e t t r a i n i ng /g i t s t a r t l e s s o n . g i t$ g i t p us h - u o r i g i n – a l l

Команда создаст ссылку на удаленный сервер – origin. Вторая – отправит все изменения включая метки на удаленный сервер.

После этого, все файлы, помещенные в репозиторий и зафиксированные, будут отправлены на сервер в созданный ранее репозиторий (адрес его указывается при создании удаленной ветки origin).

Теперь команда $ g i t p us h ( б ез па р а м ет ро в ) будет отправлять данные в удаленную ветку origin/master автоматически, потому что будет использоваться origin для всех подобных операций. Если удаленных веток больше, то нужно будет указывать нужную.

03.05.2023 38

Проверка

Для проверки правильности настройки, необходимо проверить репозиторий, который был загружен на сервис. Если там успешно показываются файлы проекта и есть сведения о коммитах, то все в порядке.

Также, можно выполнить проверку путем клонирования существующего репозитория. Для этого нужно выбрать такой репозиторий получить ссылку для клонирования.

Например, она может иметь вид (команда) по SSH: $ g i t c l one g i t@b i tbucke t .o rg :exade ldo tne t t ra in ing/g i t s ta r t l e sson .g i t

Если все операции производятся нормально, это значит, что настройка выполнена верно, Git успешно связывается с удаленным сервисом, файлы помещаются и загружаются с него.

03.05.2023 39

Проверка и замечания

Первый раз, когда производится клонирования, а еще вернее – при отправке изменнений (push) репозитория на компьютере в случае использования SSH может потребоваться дополнительное действие, которое заключается в том, чтобы синхронизировать ключи на сервисе. Это делается очень просто, но требуется операция подтверждения от пользователя. Поэтому данную операцию стоит делать в консоли, где будет показано предупреждение.

После этого появится глобальный файл knownhosts со списком хостов и ключей (публичных, не приватных!) с которыми сопряжен и работает компьютер.

03.05.2023 40

ПОДВЕДЕНИЕ ИТОГОВ

03.05.2023 41

Полные шаги настройки

Итого, для настройки Git и начала работы с удаленными сервисами нужно пройти следующие шаги:

Установить и настроить Git на локальном компьютере. Сгенерировать ключ (публичный и приватный). Зарегистрироваться или войти в аккаунт на удаленном сервисе. Добавить ключ с компьютера (публичный). Создать репозиторий пустой. Инициализировать локальный репозиторий или клонировать,

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

03.05.2023 42

Заключение

В данной презентации били рассмотрены основные моменты, необходимые для начала работы с Git, а также его использованию при работе в среде Visual Studio.

В заключении можно отметить, что данная презентация на является максимально полной и охватывающей данную тему. Для более подробного ознакомления предлагается использовать разработанное руководство, а также дополнительные материалы, посвященные Git и работе с ним. Кроме того, можно познакомиться с документацией на портале Bitbucket [8], которая содержит сведения для работы с удаленными репозиториями.

Целью данной презентации было дать общее понятие как начать работать и что нужно чтобы начать. Содержатся сведения о том, как можно начать работу с Git, а также настроить необходимые средства для роботы.

03.05.2023 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/documentation7. 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/

03.05.2023 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

THE END!Thanks for your attentions!