Одно из главных препятствий, с которым сталкивается начинающий разработчик программного обеспечения – отсутствие информации для новичков. Об инструментах или технологиях, которые необходимо освоить неопытному программисту, редко пишут понятным языком. Даже если тема очень простая, необходимо прочитать несколько статей, чтобы получить о ней полное представление.
Если такой подход усложняет ваше обучение и работу, у нас есть решение. В этой статье мы поделимся своим опытом и расскажем про git. Это великолепная система, которую нетрудно освоить и добиться значительных результатов в программировании. Если вы до сих пор пишете базовые сайты HTML / CSS с помощью простого текстового редактора, отложите это дело в сторону. Пара минут чтения об инструменте, которым пользуются ведущие разработчики, позволят выйти на новый уровень создания веб-проектов.
Что такое git, и зачем это нужно?
Если в общем, то это одна из множества разных систем контроля версий (VCS), но что это значит? Из официальной документации git-scm.com:
Система контроля версий — это система, записывающая изменения одного или множества файлов в течение времени и позволяющая вернуться позже к определённой версии.
Ок, а если совсем просто, то git — это прокаченная кнопка «Сохранить». Сохранение в git зовётся коммит (commit). Когда мы делаем коммит, мы создаём копию (на самом деле не совсем, но об этом позже) состояния всех файлов в рабочей директории — git репозитории.
Git можно использовать для сохранения состояния файлов любого типа, не обязательно только для разработки ПО. Но именно в этом случае, в процессе работы необходимо постоянно вносить изменения в большое количество разных файлов, и git в данном случае мощный инструмент для просмотра изменений, дающий возможность откатывать изменения в случае ошибок, или совмещать изменения нескольких разработчиков.
Почему я должен использовать git?
Если вкратце:
- Это крутая кнопка сохранения которая делает копию состояния вашего проекта на определенный момент времени
- Это инструмент который помогает работать над разными версиями вашего проекта одновременно. Например, создавайте новое меню вашего сайта в одной ветке, вносите мелкие правки шаблона в другой и совмещайте всё это по мере готовности
- Это потрясающая система для взаимодействия нескольких людей в рамках проекта
Итак, рассмотрим подробнее почему следует использовать git, когда есть такие сервисы как Google Drive, Яндекс.Диск или Dropbox для сохранения резервной копии, а версии вообще можно делать как ctrl+c и ctrl+v?
Возьмём для примера несколько сценариев.
Предположим мы только начали разработку вашего нового сайта (пусть это будет портфолио работ). У нас есть набор CSS-файлов, которые мы начинаем править чтобы закончить работы над расположением меню. Что-то делаем, делаем идём смотреть результат и видим что получилось не то, что ожидали: меню съехало в пикселях, исправить не проблема, но хуже что заголовок страницы пропал, совсем.
Ctrl+C, Ctrl+Z - отменяем наши правки по меню, смотрим результат: заголовка по прежнему нет. Что-то сломало общий шаблон страницы, но что и где именно мы не знаем. Возможно где-то пропустили точку с запятой, случайно удалили строчку или ещё что-то сходу не очевидное.
Работа с использованием git обычно строится так, что мы делаем git commit (сохраняем состояние) на каждом логически законченном этапе. В данном случае у нас было бы состояние перед тем как мы начали наши правки по меню, то самое состояние в котором заголовок ещё на месте. Мы могли бы просто вернуться к этому состоянию, и начать правки заново, либо могли бы наглядно посмотреть что именно изменилось в проекте с последнего сохранённого состояния.
Выше простой пример персонального сайта на базовых HTML и CSS. Представьте что у вас большой комплексный проект, с реальными пользователями в онлайне, и при обновлении бекэнда перестал работать модуль оплат. Критически важно до решения проблемы в короткие сроки вернуться к работоспособной версии. В этом случае git незаменимый инструмент на этапе разработки.
Как мне начать использовать git?
Для начала нужно иметь базовые навыки работы с командной строкой (терминалом) - ещё одним важным инструментом в руках разработчика. В рамках данного материала не нужно быть экспертом, но что это такое знать нужно.
Windows: самый простой способ для пользователей Windows это Git Bash https://gitforwindows.org/ - скачайте и установите перед тем как мы пойдём дальше.
Самое лучшее это учиться на примерах, с чего мы и начнём. Откройте терминал (в Linux или Mac, или Git Bash в Windows). У большинства пользователей Mac и Linux git уже установлен и готов к работе, в чём можно убедиться набрав команду
git --version
Если git уже установлен в вашей системе, система сообщит в выводе об установленной версии:
git version 2.21.0
Если же нет, ничего страшного. Со способами установки в вашей системе можно ознакомиться по ссылке https://gist.github.com/derhuerst/1b15ff4652a867391f03
И так, git установлен и готов к работе. Для примера будем использовать простой проект: статичный HTML сайт.
Как использовать git в моём проекте?
Возьмём для примера директорию website в которой лежит файл index.html и директории scripts и styles, с расположенными в них файлами main.js и style.css.
Первым делом необходимо проинициализировать новый git репозиторий в директории. Для этого перейдем в нужную директории и выполним соответствующую команду:
cd website
git init
После успешного выполнения команды получаем подтверждение в создании репозитория:
Initialized empty Git repository in /home/projectpulse/dev/website/
также можно заметить что в проекте появилась новая директория .git. В дальнейшем если понадобится удалить репозиторий, достаточно будет удалить эту директорию.
Настройка имени и адреса электронной почты в git
Каждый коммит имеет своего автора, с записанными именем и адресом электронной почты. Авторов проекта можно посмотреть используя команду git log. Для настройки можно воспользоваться следующими двумя командами:
git config --global user.name «Ваше имя»
git config --global user.email your@examplemail.ru
Делаем первый коммит
Только что мы создали репозиторий и настроили имя с адресом электронной почты. Пришло время сделать наш первый коммит, который сохранит текущее состояние нашего проекта, и который будет являться начальной точкой нашего репозитория. Сделаем это следующими командами:
git add .
git commit -m "Initial commit - project start"
Первой строкой мы добавили в коммит все файлы директории в коммит (а также добавили их к последующему контролю за изменениям). Второй строкой мы создали коммит с комментарием. Обычно комментарий отражает состояние проекта или сделанные изменения которые собраны в коммите. Совет: старайтесь писать комментарии кратко, но ёмко.
С этого момента и далее, любые изменения в файлах директории будут записаны и сопоставлены с начальным состоянием. Чтобы проверить это, внесём изменения в какой-либо файл (например index.html) и запустим команду
git status
Вывод команды даёт нам понимание что произошло в проекте с момента последнего коммита
No commits yet
Untracked files: (use "git add <file>..." to include in what will be committed)
index.html
nothing added to commit but untracked files present (use "git add" to track)
Данный вывод говорит нам о том, что есть неучтённые изменения в одном файле index.html. Соберём новый коммит добавив в него изменения
git add .
Точкой мы просим добавить все изменения файлов в директории. Но чаще приходится добавлять изменения пофайлово или же отдельными директориями
git add index.html
git add styles/
И наконец сохраним наши изменения создав новый коммит
git commit -m "Modify index file to fix menu"
На этом всё! Git имеет множество других полезных функций, особенно для совместной работы (ветвления, слияния) которые будут рассмотрены в следующих статьях. Подписывайтесь и следите за обновлениями :)
Оригинал в блоге на нашем сайте: https://projectpulse.ru/blog/all/git-for-beginners-pt1