Когда ты запускаешь git branch <branchname>, Git использует ссылку HEAD, чтобы определить SHA-1 последнего коммита. HEAD — это специальный файл в твоей папке .git, который указывает на текущую рабочую ветку.
HEAD — это символическая ссылка, а не обычная ссылка, содержащая SHA-1-хеш. Вместо этого она работает как указатель на другую ссылку. Такой уровень косвенности позволяет Git отслеживать, на какой ветке ты сейчас находишься.
Когда ты смотришь содержимое файла HEAD, ты видишь:
$ cat .git/HEAD
ref: refs/heads/master
Это показывает, что HEAD сейчас указывает на ветку master.
Когда ты переключаешься на другую ветку через git checkout branchA, Git автоматически обновляет файл HEAD:
$ cat .git/HEAD
ref: refs/heads/branchA
Этот механизм позволяет Git:
По сути, HEAD работает как промежуточный слой, который Git проверяет, чтобы найти нужную ссылку на ветку, которая в свою очередь содержит SHA-1 последнего коммита на этой ветке. Такой элегантный дизайн избегает избыточности и делает управление ветками эффективным.
HEAD — это символическая ссылка, которая указывает на другую ссылку, а не содержит напрямую хеш SHA-1.
Новый — ещё не проверен сообществом
Вы