Да, для git ветка - это просто ссылка на коммит, который автоматически обновляется при фиксации. Вы могли бы отследить это сами, как вы заметили.
Фактически, git предоставляет все низкоуровневые блоки, на которых строится более высокоуровневая абстракция. Вы можете, если вы хотите использовать такие команды, как git hash-object
, git mk-tree
и git commit-tree
, чтобы вручную делать то, что git add
и git commit
, если хотите (см. Главу Raw Git в Git Book, чтобы знать, как это сделать в деталях).
Обратите внимание, что в git есть два вида тегов. Облегченные теги - это просто ссылки на коммит (через его хэш), которые не перемещаются автоматически. Также существует понятие теговых объектов , которые являются реальными объектами git, заархивированы как коммит и могут содержать сообщение и подпись.