Материалы‎ > ‎GIT‎ > ‎

Основные понятия

Основные понятия


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

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

Ветка (Branch) - это ответвление в ходе разработки проекта. Иногда, чтобы не испортить работающий проект и добавить в него какую-то новую функцию, мы вручную делаем его копию и редактируем ее, не трогая рабочую версию. Ветки в Git - это и есть, своего рода, копии текущего проекта. В каждом репозитории есть по крайней мере одна главная ветка - "master". Можно создавать сколько угодно других веток, "растущих" из разных коммитов. Стратегия такого ветвления может быть самой разной: можно использовать уже обкатанную кем-то модель ветвления (см. ссылки в конце статьи), или придумать свою. Например, для работы над каким-то багом можно сдлеать специальную ветку, а после завершения работы - объединить ее с основной. Механизм веток очень полезен при коллективной разработке.

Коммит (Commit) - это своего рода контрольная точка (то самое "фото", о котором шла речь выше) текущего состояния всех индексируемых файлов и папок. Каждый коммит имеет свой уникальный идентификатор (который является SHA-суммой всех файлов) и, как правило, текстовый комментарий, характеризующий изменения, внесенные в индексируемые файлы.  Каждая ветка состоит из коммитов. Коммиты делаются в процессе работы над проектом - как правило, после завершения какого-то этапа работы. Например, добавили новую функцию - сделали коммит (сохранились), поправили какой-то баг - коммит, и т.д. В случае чего, Git позволяет откатится до любой предыдущей версии проекта (до любого коммита). Поэтому, чем чаще делаются коммиты - тем лучше.
Comments