В этом мануале представлены основные сведения об инструментах контроля версий программного обеспечения и рассмотрен алгоритм создания локального репозитория, связанного с удалённым.
- Github нужен для взаимодействия между разработчиками при совместной работе над проектами (может использоваться в течении всего жизненного цикла ПО).
- Работа в Github организуется посредством предоставления определенного доступа через интернет каждому из членов команды к рабочим директориям проекта, истории изменений, а также к задачам и документации проекта, с возможностью изменять файлы и отслеживать историю их редактирования.
Основы
GitHub — онлайн-хостинг репозиториев, обладающий всеми функциями системы контроля версий и функциональностью управления (в него входит всё то, что поддерживает Git). Вместе с Git он даёт разработчикам возможность сохранять их код онлайн, а затем взаимодействовать с другими разработчиками в разных проектах.
Git — это инструмент, позволяющий реализовать распределённую систему контроля версий.
GitHub — это сервис для проектов, использующих Git.
Создать коммит (commit) значит зафиксировать изменения любых файлов, входящих в репозиторий.
Репозиторий — каталог файловой системы, в котором могут находится: файлы журналов конфигураций и операций, выполняемых над репозиторием, а также сами контролируемые файлы.
Репозиторий бывает:
- локальный (расположен непосредственно в памяти компьютера разработчика, в нем происходит разработка и фиксация изменений, после чего можно отправить на удалённый репозиторий)
- удалённый (находится на сервере, может быть приватным – доступным ограниченному числу лиц, и публичным – open source)
В GitHub входит:
- система контроля доступа
- багтрекинг (отслеживание истории действий над файлами и, при необходимости, переход на более ранние версии)
- возможность управлять задачами и справками для проектов
К проекту, загруженному на GitHub, можно получить доступ с помощью интерфейса командной строки и Git-команд, сайта https://github.com/, или с помощью приложения Github — desktop для Windows или macOS.
Для первого коммита на Github необходимо установить Git, создать локальный репозиторий, добавить в него файлы, сделать коммит, подключиться к удалённому репозиторию и отправить в него изменения.
Установка Git
Для Linux:
1. Откройте терминал и перейдите в желаемую директорию для установки.
2. Введите: sudo apt-get install git
Для macOS:
1. Воспользуемся homebrew
2. Вводим в терминале: brew install git
Для Windows, (для macOS и Linux — альтернатива):
1. Перейдите по ссылке: http://git-scm.com/downloads
2. Выберите нужный пакет и следуйте дальнейшим инструкциям.
Далее работа с Git будет выполняться в терминале Bash, который станет доступен на любой ОС после установки Git. Так вы будете лучше понимать устройство работы с системами контроля версий и возможности графического клиента ограничены по сравнению с консольным.
Создание и настройка локального репозитория
1. Открываем Bash
Пусть наш проект имеет путь в файловой системе Users/Public/Project. Перед созданием локального репозитория желательно удалить все ненужные, временные файлы в папке проекта.
2. Настроим имя пользователя и адрес электронной почты:
git config --<span class="hljs-built_in">global</span> user.name <span class="hljs-string">"Name"</span> git config --<span class="hljs-built_in">global</span> https://www.linkedin.com/redir/general-malware-page?url=user%2eemail email@mail.ru
(где Name – логин пользователя, email@mail.ru — почта)
Теперь каждое наше действие будет отмечено именем и почтой, это вносит порядок в историю изменений.
tree – команда для просмотра древовидной структуры файловой системы, в которой мы находимся.
find – удаление файлов со специфичным суффиксом.
3. Переходим в папку с проектом Users/Public/Project:
<span class="hljs-built_in">cd</span> Users/Public/Project/
4. Создадим локальный репозиторий в папке с проектом:
git <span class="hljs-keyword">init</span>
Командная строка должна вернуть что-то вроде:
Initialized empty Git repository <span class="hljs-keyword">in</span> Users<span class="hljs-regexp">/Public/Project/</span>
Добавление файлов в локальный репозиторий
1. Теперь создадим любой файл в нашей директории, например, first.txt
2. Добавим его в систему управления версиями:
git add first.txt
3. Если нужно добавить все файлы в директории, то используем:
git add –A
или:
<span class="hljs-comment">git</span> <span class="hljs-comment">add</span> <span class="hljs-literal">--</span><span class="hljs-comment">all</span>
4. Проверить текущее состояние:
git status
Можно отменить добавление файла командой:
git rm –-cached first.txt
Создание версии проекта
После добавления нужного файла в staging area (область подготовленных файлов) можно создать версию проекта.
1. Введем команду:
git <span class="hljs-keyword">commit</span> -m <span class="hljs-string">"comment"</span>
Ключ –m означает создание пользователем описания этого коммита.
Для удаления всеx файлов в папке, не относящихся к проекту, и не сохраненных в репозитории, можно воспользоваться командой:
git clean -df
Создание репозитория на Github
Все действия до этого раздела производились над локальным репозиторием, который находится у вас на компьютере. Если мы хотим сохранить проект в Интернете, и предоставить к нему доступ, то создадим репозиторий на Github.
1. Регистрируемся на сайте: github.com под именем nikname (может быть любым другим).
2. Нажимаем кнопочку "+" и вводим название репозитория.
3. Выбираем тип Public (Private доступен только в платной версии).
4. Нажимаем Create.
В результате создан репозиторий в Github (на экране видим инструкцию, по соедининению локального репозитория со вновь созданным).
5. Добавляем удаленный репозиторий (по протоколу SSH) под именем origin (желательно использовать его, но можно любое другое, главное – не master – оно используется в момент релиза версии).
git remote add origin git@github.com:nikname/project.git
Результат можно увидеть с помощью команды:
git remote -v
Если все правильно сделано, то увидим:
origin git@github.com:nikname/project.git (fetch) origin git@github.com:nikname/project.git (push)
Для отмены регистрации удаленного репозитария, введите:
git remote rm origin
Этой командой вносятся все изменения, которые были сделаны в локальном репозитории на Github:
git push -u github master
-u ключ установления связи между удаленным репозиторием github и веткой master. Все дальнейшие изменения переносятся на удаленный репозиторий следующей командой: git push
Полезные ресурсы
- Более подробно про Git можно прочитать в книге Скотта Чакона и Бена Штрауба — Pro Git
- За помощью с работой в Github переходим на сайт.
Теги: git, github