Система управления версиями Git и GitHub¶
Установка¶
Github.com позиционируется как веб-сервис хостинга проектов с использованием системы контроля версий git, а также как социальная сеть для разработчиков. Пользователи могут создавать неограниченное число репозиториев, для каждого из которых предоставляется wiki, система issue tracking-а, есть возможность проводить code review и многое другое. GitHub на данный момент является самым популярным сервисом такого рода, обогнав Sourceforge и Google Code.
Создание репозитория¶
Необходимое программное обеспечение¶
В первую очередь надо установить клиент git: обязательно потребуется консольный клиент, доступный по ссылке http://git-scm.com/downloads (поддерживаются основные ОС), графический клиент можно установить по желанию, исходя из своих предпочтений. На Unix системах можно воспользоваться менеджером пакетов (yum на fedora и подобных или apt-get на debian, ubuntu и подобных) вместо того, чтобы скачивать установщик с сайта.
Аккаунт и репозитории на github.com¶
Затем надо зарегистрироваться на https://github.com/. После чего можно будет создавать свои репозитории или присоединиться к работе над проектами коллег, сделав fork другого репозитория.
Основные команды¶
Работа с кодом из репозитория на локальном компьютере¶
Следующим шагом после создания репозитория на github, называемого далее удаленным репозиторием, является создание локальной копии этого репозитория на своем компьютере. Особенностью git явялется наличие на локальном компьютере полной копии репозитория со всей информацией об истории изменений.
- Открываем консольный клиент.
- На Windows после установки клиента появляется пункт Git Bash в контекстом меню папки. Достаточно перейти в желаемую папку и воспользоваться этим пунктом меню. Open Git Bash in Windows
- На Unix системах достаточно открыть терминал и перейти в нужную директорию. При стандартной установке консольного клиента будет доступна команда git без дополнительных усилий.
- Выполняем команду git clone https://github.com/%user_login%/%repo_name%.git. Полную https ссылку на репозиторий для его выкачивания можно также найти на странице самого репозитория на github. После этого в текущей папке появится новая папка с именем %repo_name%, содержащая копию удаленного (remote) репозитория.
- Переходим в свежесозданную папку репозитория и настраиваем его:
git config user.name ivan.ivanov
git config user.email ivanov@example.com
Внесение и оформление изменений в локальном репозитории¶
- Воспользовавшись командой git status можно узнать, на какой ветке (branch) репозитория вы сейчас находитесь, какие изменения присутствуют в вашей рабочей копии и другую информацию. Рабочей копией называется совокупность файлов в локальной папке репозитория за исключением служебных файлов.
- После внесения каких-либо изменений в рабочую копию их можно закоммитить в локальный репозиторий. Cначала нужная часть изменений подготавливается к коммиту:
git add %file_path%
- После чего производится коммит командой:
git commit
- Использование команды без аргументов откроет текстовый редактор, где надо будет написать комментарий для коммита, коммит обязательно должен иметь комментарий. Другим вариантом задания комментария к коммиту является использование команды:
git commit -m "%commit_message%"
- Историю изменений можно посмотреть командой git log или git log –name-only. Если вся история изменений не умещается на экране, то можно пользоваться клавишами прокрутки на клавиатуре (“стрелочки”, PgUp, PgDown), выход из режима просмотра изменений осуществляется нажатием клавиши “q”.
Загрузка локальных изменений в удаленный репозиторийи¶
После того, как были выполнены нужные локальные коммиты, изменения можно загрузить в удаленный репозиторий с помощью команды git push origin master. GIT клиент при этом запросит имя пользователя и пароль для доступа к github. Выполнение этой команды может закончиться с ошибкой, если в локально репозитории отсутствуют последние изменения, имеющиеся в удаленном репозитории. Для решения этой проблемы надо выполнить команду git pull, которая скачает последние изменения из удаленного репозитория и смержит их с вашими локальными правками, после чего можно повторить команду git push.
Выводы¶
Есть причина не использовать GitHub?¶
Если вы разрабатываете проприетарное программное обеспечение, есть ряд причин не размещать исходный код на GitHub, но это не должно служить препятствием в работе над программным обеспечением с открытым исходным кодом в свободное время. Это принесет пользу в поиске новой работы, пользу разработчикам и пользу каждому пользователю проекта с открытым исходным кодом. GitHub предлагает широкий спектр возможностей и необходимо ими воспользоваться!