Терминология Git

Tree (дерево) — структура данных, отражающая иерархические зависимости. По сути весь проект Git — это ориентированных граф.

Корневой узел — самый верхний узел дерева.

Корень — одна из вершин, по желанию наблюдателя.

Лист — узел, не имеющий дочерних элементов.

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

Snapshot (снимок) — образ файловой системы проекта. Git хранит не дельту между двумя коммитами. Git  в каждом коммите хранит состояние всей файловой системы проекта на момент коммита. Git в целях экономии места хранит только измененный файл, а на те файлы, которые не были изменены, осуществляет доступ по ссылке.

HEAD — указатель на текущий коммит, то есть коммит, чей snapshot отражен в файловой системе. Указывает на состояние проекта.

Как Git видит проект

Проект — это дерево. Узлами дерева являются коммиты. Каждый коммит характеризуется сообщением, набором файлов, которые претерпели изменения, ссылки на неизменные файлы, уникальных хэш SHA-1, с помощью которого можно идентифицировать коммит.

В проект определяется определенная последовательность коммитов, которые группируются в ветвь. Ветви не влияют друг на друга. Ветви «растут» сами по себе (пока не выполнится слияние). Для фиксации того, кто и когда делал изменения, к коммиту прикрепляется временная метка и имя автора.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *