Как удалить файл из индекса (= промежуточная область = кеш), не удаляя его из файловой системы?
Как удалить файл из индекса в git?
Ответ 1
Вы хотите:
git rm --cached [file]
Если вы опустите параметр --cached, он также удалит его из рабочего дерева. git rm немного безопаснее, чем git reset, потому что вы будете предупреждены, если поэтапный контент не совпадает ни с концом ветки, ни с файлом на диске. (Если это не так, вам нужно добавить --force.)
Ответ 2
Это должно привести к остановке файла <file> для вас (без удаления или изменения другой информации):
git reset HEAD <file>
Ответ 3
В зависимости от вашего рабочего процесса это может быть то, что вам нужно редко, что мало смысла в поиске решения из командной строки (если по какой-то причине вы не работаете без графического интерфейса).
Просто используйте один из инструментов на основе графического интерфейса, которые поддерживают управление индексами, например:
-  git gui< - использует структуру оконного окна Tk - аналогичный стильgitk
-  git cola< - более современный интерфейс GUI
Это позволяет перемещать файлы в индекс и из него по точкам и щелчкам. Они даже поддерживают выбор и перемещение частей файла (индивидуальные изменения) в индекс и из него.
Как насчет другой перспективы: если вы испортили, используя одну из предложенных, довольно загадочных команд:
-  git rm --cached [file]
-  git reset HEAD <file>
... у вас есть реальный шанс потерять данные - или, по крайней мере, трудно найти. Если вам действительно не нужно делать это с очень высокой частотой, с помощью инструмента GUI, вероятно, будет более безопасным.
Работа без индекса
Основываясь на комментариях и голосах, я понял, что многие люди постоянно используют индекс. Я не. Вот как:
-  Зафиксируйте всю мою рабочую копию (типичный случай): git commit -a
-  Зафиксируйте только несколько файлов: git commit (list of files)
-  Зафиксируйте все, кроме нескольких измененных файлов: git commit -aзатем измените с помощьюgit gui
-  Графически просмотрите все изменения рабочей копии: git difftool --dir-diff --tool=meld
