TGViewer
Dev Tools Dev Tools @developer_tools · 3.2K subscribers
Post #238 6.39K
​​DeepGit: Hashing and Cating. Понимаем файловую систему.

Ч1

Как я говорил ранее, Git это файловая система основой которой являются файлы типа tree, commit, blob.
Подробнее о типах файлов у меня вышла статья на DevQuiz.
Рекомендую прочесть ее и вернуться сюда.

Для того чтобы git начал мониторить ваши файлы ему нужно получить blob файл с этим данными.
Если вы после создания репозитория посмотрите в папку objects она будет пуста, даже если в директории с гитом уже есть файлы.

Чтобы добавить файл в git есть техническая команда git hash-object -w filename.txt она делает blob файл с вашими данными и сохраняет себе в objects.

После этого git status все еще будет пуст, так как индекса еще нет, но git уже сохранил себе версию этого файла.
Именно эта команда лежит в основе гита, это такой себе "save" ваших данных.

Например вы сделали
 echo "first version" >  new_file.txt
git hash-object -w new_file.txt

У вас появляется файл new_file.txt с текстом first version и появляется файл de8d69c9026be2a49f540fda12f3e755a33e6c в папке 22 с таким же текстом.

Следом мы делаем
 echo "second version" > new_file.txt
git hash-object -w new_file.txt

У нас появляется доп файл 7ac37bb280ccd34b350a59ba440614d9106e41 в папке ad с текстом second version

Теперь с помощью git cat-file -p 22de8d69c9026be2a49f540fda12f3e755a33e6c > new_file.txt можно переключиться на старую версию.

И все это происходит до того как вы сделали git add.
Все еще с пустым индексом.
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 →