Что такое «промежуточная область» или «индекс» в GIT?
Индекс в Git — это место, где Git хранит подготовленную версию изменений, которые войдут в следующий коммит. Изменения попадают туда командой git add, а затем фиксируются командой git commit. Индекс позволяет выбрать, что именно коммитить: весь файл, несколько файлов или даже отдельные части изменений.
Индекс — это важный слой между рабочей директорией и последним коммитом в репозитории. В рабочей директории находятся файлы, которые вы редактируете, а в индексе — снимок тех изменений, которые уже подготовлены для следующего коммита.
Когда вы меняете файл, Git видит изменение, но оно еще не попадет в коммит автоматически. Сначала нужно явно добавить его в индекс с помощью git add. После этого git commit создаст новый коммит именно на основе содержимого индекса, а не просто всех файлов из рабочей директории.
Главная польза индекса — контроль над составом коммита. Например, если вы изменили три файла, но логически хотите закоммитить только один из них, вы добавляете в индекс только этот файл. Остальные изменения останутся в рабочей директории и не попадут в текущий коммит.
Также индекс позволяет проверять подготовленные изменения перед коммитом. Для этого удобно использовать git diff --cached: команда показывает разницу между последним коммитом и тем, что уже добавлено в индекс.
На собеседовании можно описать модель Git так: рабочая директория — это то, что редактируется сейчас; индекс — то, что подготовлено к коммиту; репозиторий — история уже созданных коммитов. Поэтому индекс нужен, чтобы делать аккуратные, осмысленные коммиты и не включать в них случайные изменения.
Отметьте свой прогресс