Введение в git для новичков

17.07.2019

Одно из главных препятствий, с которым сталкивается начинающий разработчик программного обеспечения – отсутствие информации для новичков. Об инструментах или технологиях, которые необходимо освоить неопытному программисту, редко пишут понятным языком. Даже если тема очень простая, необходимо прочитать несколько статей, чтобы получить о ней полное представление.

Если такой подход усложняет ваше обучение и работу, у нас есть решение. В этой статье мы поделимся своим опытом и расскажем про 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://webtuu.com/blog/04/a-laymans-introduction-to-git