TGViewer
Dev Tools Dev Tools @developer_tools · 3.2K subscribers
Post #254 7.12K
​​DeepGit: HEAD

Забыл в последней статье упомянуть про HEAD.
В файле .git/HEAD лежит ссылка на рефернс.

 09:32:21 in tmp/git_/first on  master •99%
➜ cat .git/HEAD
ref: refs/heads/master


С помощью команды

 git symbolic-ref HEAD refs/heads/<branch_name>


Можно ставить HEAD.

Теперь можно полностью понять как работает git checkout <branch> .

  cat .git/HEAD
cat <ref_path>
git cat-file -p <commit_hash>
git cat-file -p <tree_hash>


И дальше уже проходим по blob-ам, и записываем туда версии.

P.S Это весьма топорная реализация git checkout , на самом деле все работает немного иначе.
Впереди нас еще ждет статья про pack файлы и про то, как git оптимизирует хранение файлов.
More from @developer_tools
  1. Nov 1, 2021​​ray.so - прикольный тул для создания симпатичных код-шейр картинок. Даже плохой код тут…
  2. Oct 30, 2021​​inpaint - тул с устаревшим лендингом, но с простым интерфейсом который позволяет легко у…
  3. Oct 9, 2021​​Bubble - интересный тул для лепки сайта без кода. Довольно обширный функционал конструкт…
  4. Oct 8, 2021​​there - простенький тулл для просмотра локального времени тиммейтов, друзей колег. Не ед…
  5. Sep 24, 2021​​genact - тулл который создает видимость активности в терминале. Для работы нужно скачать…
  6. Sep 23, 2021​​unscreen - тул убирает фон на видео/gif. Есть API. Работает не идеально на кадре с Траво…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →