Реклама ООО Таймвэб
Реклама ООО Таймвэб
Реклама ООО Таймвэб

Что такое Git и для чего он используется

Обсудить
Что такое Git

Рассказываю про Git – популярнейшую систему контроля версий для разработчиков.

Что такое Git?

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

Чаще всего Git используется в разработке приложений и сайтов, но он также находит применение и в других сферах, например в переводах книг. 

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

Система контроля

Под системой контроля в контексте Git подразумевается программный механизм для работы с контентом. В «работу» также входит хранение, передача данных, отслеживание изменений и прочие аспекты.

Система контроля версий

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

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

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

Распределенная система контроля версий

Также Git позволяет вести параллельную разработку, когда несколько программистов одновременно вносят изменения в одно приложение или сайт, но при этом не мешают друг другу и спокойно дополняют продукт, не вызывая сбоев в работе сервиса/сайта/приложения, которое использует их клиент. 

Стейджинг в Git

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

  • основное приложение со всеми нужными функциями,

  • его версия с новым дизайном,

  • новая версия с дополнительными возможностями. 

И пока основное приложение остается нетронутым, две его вариации активно развиваются, пока не станут частью основы. Впрочем, этот аспект Git мы еще разберем более подробно. 

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться

Зачем нужен Git?

Затем, чтобы не случился апокалипсис в мире разработки (и не только, но мы будем оперировать именно областью IT). Сейчас трудно представить себе мало-мальски крупное приложение, над которым работал бы один человек. За проектом всегда стоит целая команда создателей. И чтобы им всем было комфортно работать вместе, нужна распределенная система контроля версий. Это гарантия отсутствия конфликтов в коде и возможность вести разработку нескольких функций ПО, не соприкасаясь друг с другом и общим кодом. 

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

Подробнее о внутреннем строении Git

Репозитории 

Репозиторий (репо, реп) – это хранилище файлов проекта. То есть все компоненты, относящиеся к одному приложению (код, изображения, конфигурационные файлы, стили, скрипты и т.п.). С ним как раз и работают люди, ведущие совместную работу над одним продуктом.

При создании репозитория в папке с файлами формируется .git-директория, включающая в себя информацию, необходимую для корректной работы с системой контроля версий (количество коммитов, ветвей разработки и прочих необходимых деталей). 

По умолчанию каталог .git скрыт, но его видят git-приложения, например git, Sublime Merge, Gitfox и другие аналоги. 

Коммиты, пуши и стейджинг

Коммит – это единица контента, хранящая в себе информацию о том, какие компоненты репозитория были изменены на текущий момент времени. 

За счет них и работает контроль версий. Допустим, вы решили немного поменять оформление сайта. Открываете файл .css, вводите туда новое значение шрифтов или цветов, а потом сохраняете их. Чтобы это изменение отразилось в git, нужно создать коммит (git commit - m, «описание коммита»). Теперь вы можете в любой момент вернуться к этому этапу в разработке сайта. 

Стейджинг-зона – это временное пристанище измененных файлов. Отправляясь в стейджинг-зону (git add), они помечаются как «в разработке», но при этом из них все еще можно выбрать готовые файлы, чтобы непосредственно их закоммитить. Файлы хранятся в стейджинг-зоне (git add) до тех пор, пока пользователь не сделает коммит и не запушит (git push) изменения на сервер, то есть не выгрузит с локального репозитория в удаленный. 

Удаленные репозитории (GitHub, GitLab и т.п.)

Большинство разработчиков хранят репозитории не на локальных машинах, а в хранилищах наподобие GitHub, BitBucket, GitLab и в их аналогах. Это специализированные веб-ресурсы, поддерживающие все функциональные особенности git и позволяющие работать десяткам разработчиков над одним проектом параллельно, используя единое пространство для хранения всех файлов, их версий и прочих компонентов приложения или сайта.

Схема работы с GitHub

Коммиты остаются в локальном репо, но с помощью команды push можно отправить их в GitHub. А при помощи команды pull можно вытащить их в локальный реп, чтобы иметь под рукой самую новую версию проекта для дальнейшей разработки новых функций. 

Ветви и мерджинг

Две функции, вокруг которых строится параллельная разработка. 

Ветви (branches) – это разные состояния одной программы. Например, есть ветка master (иногда ее называют main) – в ней обычно хранится приложение с полным набором функций и дизайном, готовое к деплою (то есть публикации в App Store или загрузке на сервер). Есть ветка develop, в которой программисты корпят над нововведениями. Веток может быть неограниченное количество, хоть по одной для каждой функции. 

С помощью ветвей можно избежать изменений в программе до того, как новшества будут протестированы. А еще это помогает вносить срочные изменения в main-ветку, не добавляя при этом в программу недоделанные функции или изменения в дизайне. 

Мерджинг (merging) – это процесс объединения одной ветки с другой. Чаще всего – ветки develop с веткой main.

Пул-реквесты

Pull Request – это запрос на проверку и одобрение кода. Когда один из программистов заканчивает свою работу, он отправляет PR своим коллегам. Те проводят аудит кода и выносят вердикт, публикуется этот код или нет. 

Схема пул-реквеста

При этом сам пул-реквест является не просто оповещением о готовности куска кода – это целая система взаимодействия и обсуждения. Один PR может превратиться в десятки комментариев и правок кода. После «обработки» PR превращается в мердж. 

Разработчики также стали использовать функцию Pull Request Preview, позволяющую подключить к процессу проверки кода дизайнеров, начальство и заказчиков. 

С чего начать работу в Git?

Скачиваем git последней версии с официального сайта. Затем создаем директорию для репозитория и переходим в нее с помощью команды cd.

Создаем новый репо:

git int

Далее создаем документ в формате .txt или .html. Реп готов!

Теперь можно работать с git. Вот список основных команд:

  • git add – добавить файл в стейджинг-зону для работы над изменениями. 
  • git commit – создать коммит.
  • git status – посмотреть статус коммитов (их количество, внесенные изменения).
  • git branch название ветки – создать новую ветвь. 
  • git checkout название ветки – переключиться на другую ветвь.
  • git merge название ветки – объединить выбранную ветвь с той, к которой подключен пользователь. То есть сначала надо сделать checkout, а потом merge.
  • git remote add origin ссылка на удаленный репозиторий – подключиться к удаленной платформе. Ссылку на репо можно взять в GitHub или в GitLab в соответствующем разделе. 
  • git push -u origin название ветки – отправить набор коммитов в удаленный реп. 
  • git clone ссылка на удаленный репозиторий – скопировать себе на устройство все данные из GitHub или BitBucket.

На этом все. Вас можно поздравить – теперь вы знаете, что такое git и как работать с системой контроля версий.

Hello World! Гайды и обзоры для девелоперов разных мастей.

Комментарии

С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
С помощью соцсетей
У меня уже есть аккаунт Войти
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте