tgoop.com/developer_tools/232
Create:
Last Update:
Last Update:
DeepGit: Plumbing и Porcelain - введение.
Это первая статья из цикла предстоящих статей про git.
Я решил разбить весь материал на отдельные статьи, что бы не загружать огромными лонгридами и придерживаться формата канала.
Изначально git был больше инструментом для создания VCS чем непосредственно VCS.
Знакомый нам git в виде git add
, git commit
, git merge
итд это "высокоуровневые" врапперы над низкоуровневыми командами вроде git update-index
, git hash-object
, git cat-file
и других.
Вся "магия" гита спрятана внутри папки .git
и представляет собой своего рода файловую систему с файлами и папками.
Что у нас появляется внутри папки .git после создания:
tree -aУпустим пока все файлы кроме основных: HEAD, index, objects, refs.
.
└── .git
├── branches
├── config
├── description
├── HEAD
├── hooks
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── prepare-commit-msg.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ └── update.sample
├── info
│ └── exclude
├── objects
│ ├── info
│ └── pack
└── refs
├── heads
└── tags
refs
- папка содержит ссылки на обьекты коммитов.objects
- папка git-обьектовindex
- содержимое индексаHEAD
- содержит ссылку на актуальное состояние.Остальные папки вроде
hooks
которае содержит "тригеры" на на различные действия или папка config
с доп настройками для этой репы не являются частью "двигателя" гит.В следующей статье мы разберемся какие есть виды обьектов внутри гита, что они хранят итд.
BY Dev Tools
Share with your friend now:
tgoop.com/developer_tools/232