Основы работы с git и первый проект на github.com
В ходе разработки ПО требуется постоянно вести учёт изменений исходного кода, а также возможность отката к контрольной точке. Для этого были созданы специальные инструменты — системы управления версиями, к коим и относится рассматриваемое в данной статье ПО git.
Разумеется, это не единственная в своём роде программа, есть аналоги, хоть и не такие крутые. В целом о системах контроля версий в современной разработке можете почитать тут.
ПО git может быть использовано для достижения следующих целей:
- хранение истории изменений;
- перемещение по истории изменений;
- коллективная работа (слияние изменений + решение конфликтов);
- резервное копирование.
Программа git эта изначально создана для Linux, и в дальнейшем была портирована под Windows. В следствие этого у неё отсутствует оконный интерфейс, вся работа ведется в консоли, либо через сторонние программы. Например, работа с git поддерживается в IDE PhpStorm, однако в рамках данной статьи мы рассмотрим работу с git только «напрямую».
Папка с содержащимися в ней объектами под контролем git называется репозиторием. При этом git позволяет хранить копию проекта и все контрольные точки на удаленном сервере. При этом файлы, хранящиеся на Вашем компьютере называются локальным репозиторием, а файлы, загруженные на сервер — удаленным репозиторием. Удаленные репозитории могут быть публичными или частными (для организаций). Мы рассмотрим один из публичных бесплатных репозиториев под названием github.com.
После регистрации на сервисе нужно создать первый репозиторий, делаем это по ссылке https://github.com/new. Здесь нужно заполнить имя проекта и выбрать тип репозитория — Public. Стоит отметить, что доступ к просмотру файлов после публикации их в публичном репозитории будет иметь любой желающий. Если Вы хотите создать частный репозиторий, скрытый от лишних глаз, придется заплатить. На момент написания статьи стоимость месячной подписки составляла $7. Также ОБЯЗАТЕЛЬНО!!! нужно поставить галочку напротив пункта «Initialize this repository with a README». Это позволит склонировать репозиторий на Ваш компьютер, сразу после создания.
После создания репозитория мы получаем ссылку на него, имеющую следующую структуру: https://github.com/ваш-ник/имя-репозитория. В моём случае ссылка получилась такой: https://github.com/ivashkevitch/newrep. Перейдя по данному адресу Вы увидите ссылку с подписью «Clone URL». В моём случае это https://github.com/ivashkevitch/newrep.git. Именно эта ссылка будет использоваться если кто-то, включая Вас, захочет склонировать Ваш репозиторий на свой компьютер.
Теперь переходим непосредственно к работе с git. Переходим по ссылке https://git-scm.com/download/win и скачиваем дистрибутив для вашей версии ОС. После завершения установки запускаем программу по появившемуся ярлыку Git Bash. Запускается консольное окно с поддержкой команд Linux. То есть перемещение по папкам, отображение листинга директорий будет осуществляться командами cd и ls соответственно. Выберем папку на локальном компьютере для репозитория. В моём случае это D:/openserver/domains/. Выполняем команду в консоли Git Bash:
cd D:/openserver/domains/
Теперь склонируем удаленный репозиторий в текущую директорию. Для этого выполним команду git clone, после которой идёт Clone URL, в моём случае:
git clone https://github.com/ivashkevitch/newrep.git
Создастся папка с именем проекта, содержащая в себе только один файл — README.md. В нём содержится информация о проекте на github — его имя и описание.
Теперь создадим наш первый файл, который мы хотим добавить под контроль git. Создаём его в только что появившейся папке с проектом и называем index.php. Пусть этот скрипт будет выводить phpinfo. Листинг файла:
<?php
phpinfo();
?>
Добавим данный файл под контроль git. Для этого в консоли введем команду:
git add index.php
И создадим контрольную точку с названием «Создание index.php. Вызов функции phpinfo().». Для этого выполним команду:
git commit -m "Создание index.php. Вызов функции phpinfo()."
Указание параметра -m является обязательным, иначе откроется текстовый редактор vim. (На всякий случай: выйти из него можно нажав ESC, затем «:q!» без кавычек и нажать Enter.) Контрольная точка создалась, но хранится она только в локальном хранилище. Для отправки изменений на удаленный сервер необходимо выполнить команду:
git push
и после ввода имени пользователя и пароля на github.com будет выполнена отправка в удаленный репозиторий.
Теперь если перейти по URL нашего репозитория на github.com мы увидим добавленный файл index.php с сообщением, указанным к контрольной точке.
Внесём изменения в файле index.php, добавив вывод текста «Hello, world!» перед выводом phpinfo. Содержимое файла станет таким:
<?php
echo 'Hello, world!';
echo '<br>';
phpinfo();
?>
Проиндексируем изменения в файле в проекте командой:
git add index.php
Вместо этого можно при вызове команды git commit давить флаг -a, следует заметить, что новые файлы при этом в индекс добавлены не будут!
Сделаем commit:
git commit -m "Добавлен вывод Hello, world!"
и отправим изменения на сервер github:
git push
После чего снова зайдём на страницу нашего проекта на github и убедимся в том, что информация была обновлена.
Кликнув по имени файла можно посмотреть все его контрольные точки.
Кликнув по имени контрольной точки мы увидим изменения, произошедшие по сравнению с предыдущей контрольной точкой. В нашем примере мы видим добавление двух новых строчек.
Откат к ранее созданным контрольным точкам предусматривает несколько вариантов и заслуживает отдельной статьи. Для первоначального знакомства материалов данной статьи вполне достаточно.
Комментарии