Обсуждение статьи тематического каталога: Внтутреннее устройство Git (git)Ссылка на текст статьи: http://www.opennet.me/base/dev/git_guts.txt.html
Спасибо, классно описано!
> А пока вам домашнее задание: создайте пустое объект-дерево (вообще без файлов) и запостите сюда его SHA14b825dc642cb6eb9a060e54bf8d69288fbee4904
правильно ?
> Мы видим как простым переставлением символьной ссылки .git/HEAD
> выбирается "текущая" ветка.Это не соответствует действительности.
После
$ ln -sf refs/heads/master .git/HEAD
команда
git-branch
не покажет текущую ветку а покажет
* (no branch)
либо
* (HEAD detached from 41cdde7)где 41cdde7 - это коммит - ближайщий общий предок с какой-нибудь веткой.
Чтоб переключить ветки .git/HEAD должен быть обычным файлом (не ссылкой),
и нужно сделать
echo "ref: refs/heads/master" > .git/HEADP.S.
На момент написания оригинальной статьи (2008 год)
может .git/HEAD и был ссылкой, но сейчас нет.