Двадцать восьмой урок. Используем GitHub.com

Сервис github.com позволяет создавать и поддерживать удаленные репозитории. Гитхаб используют как для организации командной работы, так и для open source проектов (проекты с открытым исходным кодом). Гитхаб предлагает много дополнительных инструментов поддержки проектов, например wiki, баг-трекер и т.п. и даже создать свой сайт (на github.io).

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

Нажимаете кнопку New и попадаете на страницу создания нового репозитория. В поле Repository name укажите название своего проекта. По этому имени он будет доступен на гитхабе.

Поле Description можно пропустить или заполнить на своё усмотрение. У вас будет доступен только открытый репозиторий (Public): они бесплатны в любом количестве.

Опцию Initialize this repository with a README отмечать не нужно. Это важный момент, поскольку если произвести инициализацию, то придется менять схему синхронизации.

Нажимаем кнопку Create Repository. Всё, проект создан. :-)

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

Обратите внимание, что работать мы будем по https-адресу, а не по ssh. Адрес репозитория будет такого вида: https://github.com/USER/RERO.git. USER — это ваш логин, REPO — репозиторий.

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

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

Рассмотрим первый вариант — создание нового. У себя на компьютере создаем каталог для проекта. Выполняем обычную инициализацию, добавление файлов и фиксацию.

git init
git add .
git commit -m "Первый коммит"

Теперь нужно указать адрес удаленного репозитория.

git remote add origin https://github.com/USER/RERO.git

После этого нужно отправить данные на гитхаб. Для этого используется команда push:

git push -u origin master

На этом этапе git попросит ввести свой логин и пароль от гитхаба. Вводите их и git синхронизирует локальный и удаленный репозитории. Если теперь проверить страницу репозитория на гитхабе, то увидите все добавленные файлы.

Слово origin — это синоним удаленного репозитория, который мы связали командой remote. Это делается для удобства пользования. Можно указать другой синоним, но обычно используется именно этот.

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

С push указывается ветка, которая отправляется на гитхаб. Если нужно отправить другую, что нужно её точно также указать для отправки или переключиться на неё.

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

git push

Здесь, возможно, git опять попросит ввести свой логин и пароль. В старых версиях логин/пароль нужно было вводить при каждой операции. В новых — git их запоминает.

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

git tag ver1.0

Имя метки будет произвольным на ваш выбор. Для того, что отправить метки на гитхаб нужно выполнить push:

git push --tags

Флаг --tags указывает на отправку только меток. Это немного неудобно, поскольку приходится внчале делать обычный push, а после еще раз для меток.

После этого на гитхабе будут доступны не только Branches, но и Tags, а на вкладке Release появится первый релиз.

Для удаления метки используется команда

git tag -d МЕТКА

Гитхаб сразу предлагает для проекта баг-репорт — вкладка Issues. Здесь можно оставлять замечания о проекте («тикет»). Вы можете их делать сами, или это может сделать любой пользователь. Здесь можно обсуждать и выставлять метки (label). После отработки, тикет можно закрыть (close).

Каждый тикет имеет свой номер в виде #1. Если в комментарии к коммиту указать номер тикета (с решеткой), то гитхаб автоматом свяжет их между собой и в тикете появится ссылка на данный коммит.

git commit -m "Исправил проблему #1"

Все дальнейшие уроки вы будете выкладывать на гитхабе. Можно сделать один общий репозиторий, где в каждом подкаталоге размещать по одному уроку. Или для каждого урока создавать отдельный репозиторий (их можно после удалять). Как вам удобней, так и делайте. Мне же нужно будет присылать только ссылку на репозиторий, который я смогу посмотреть и оставить замечания в Issues для исправлений.

Задания

Задания доступны только после авторизации.