2013-03-12 2 views
2

В Git промежуточная область также упоминается как индекс. Кажется, что, когда вы вносите изменения в свой рабочий каталог и добавляете эти изменения в 'staging', git добавляет эти файлы в индексный файл. При открытии проектов /.git/index файл, я вижу, файл, содержащий текст, который отображается при вводе:Где индекс git?

git status 

я могу получить вывод, который выглядит следующим образом:

# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
#  modified: Gemfile 
# 
no changes added to commit (use "git add" and/or "git commit -a") 

но и в других такие места, как Git Index Contents они говорят, что, набрав:

git ls-files --stage 

Вы можете увидеть содержимое индекса .. хотя это явно не то, что находится в /.git/index. Какой файл в каталоге .git действительно содержит этот индекс? То, что я подозреваю, и я могу ошибаться, заключается в том, что .git/index хранит информацию об изменении в «измененной» строке, а затем при вводе git ls-files - stage, что он создает список файлов, которые устраиваются и хешируются на основе файлов в рабочем каталоге и тех, которые перечислены как измененные в этом файле индекса. Правильно ли это?

+0

См. Http://stackoverflow.com/questions/4084921/what-does-the-git-index-exactly-contains – GoZoner

ответ

4

Индексный файл в .git/index не является текстовым файлом и является двоичным файлом, который имеет необходимую информацию об индексе, а - это индекс.

Я не понимаю, что вы пытаетесь сказать с выходом git status. git status выводит даже невоспроизводимые файлы. Вы говорите, что этот индекс также имеет знания об отсутствии следов файлов в нем? Конечно нет.

+0

Ничего себе мои извинения. По-видимому, я использую vim-fugitive, который, когда я пытаюсь открыть индекс файл в vim, он просто записывает вывод состояния git в открытый буфер ... это действительно смутило меня. Теперь я вижу, что ваш ответ, что .git/index является двоичным, действительно имеет смысл. Спасибо. – Inc1982

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