2016-07-05 2 views
-1

Для репозитория git, скажем, его рабочий каталог working-dir на жестком диске.Где находится индекс?

Затем репозиторий git находится в working-dir/.git.

Где находится индекс? Он находится где-то в working-dir/.git или в основной памяти?

ответ

3

Индексный файл находится в .git/index.

Если смотреть на него напрямую, это не поможет, поскольку это двоичный файл. Вы можете увидеть содержимое индекса, запустив git ls-files --stage. Например:

100644 a8233120f6ad708f843d861ce2b7228ec4e3dec6 0 README 
100644 3697d64be941a53d4ae8f6a271e4e3fa56b022cc 0 branch_file.txt 
120000 c0528fd6cc988c0a40ce0be11bc192fc8dc5346e 0 link_to_new.txt 
100644 a71586c1dfe8a71c6cbf6c129f404c5642ff31bd 0 new.txt 
1

Дела в том, что поездки много людей вверх есть, индекс получает упоминается как «плацдарм», и они сделать вывод из того что есть какое-то отдельное место, где индексированный контент получает хранится. Это неправда. git add помещает содержимое в репозиторий и обновляет запись для своего пути в индексе, который является просто манифестом, индексированным по именам и слегка аннотированным списком содержимого id для содержимого репозитория. Индекс называется «промежуточной областью» только потому, что в большинстве случаев полезно рассматривать его таким образом.

+0

спасибо. является ли индекс для репозитория таким же, как индекс для базы данных? Является ли концепция индекса в хранилищах управления версиями и концепцией индекса в базах данных одинаковой? – Tim

+0

Я колеблюсь между «да, они такие же» и «они очень похожи», но я думаю, что реальный ответ здесь «не думайте о git в абстрактной форме. Git не является абстрактным. действительно в индексе и использовать его для полезных вещей, которые вы можете с ним сделать ». – jthill

+0

Спасибо. Можете ли вы порекомендовать какую-нибудь книгу, которая объясняет индекс git таким же образом, как и книги базы данных, объясняющие индекс базы данных? – Tim

Смежные вопросы