Я думаю, вы, вероятно, запутались с понятием index , как @ CB Bailey прокомментировал:
Область подготовки является индексом.
Вы можете просто рассматривать промежуточный каталог и index как одно и то же.
Так что, как и @ ответ Тима Хенигана , я думаю:
Вы просто хотите "отменить" git add
, которое было сделано для этого файла.
Вот мой ответ:
Обычно есть два способа отменить операцию stage , как уже упоминалось в других ответах:
git reset HEAD <file>
и
git rm --cached <file>
а какая разница?
Предположим, что файл подготовлен и существует в рабочем каталоге , используйте git rm --cached <file>
, если хотите удалить его из промежуточный каталог , и сохраните файл в рабочем каталоге . Но обратите внимание, что эта операция не только удалит файл из промежуточного каталога , но также пометит файл как deleted
в промежуточном каталоге , если вы используете
git status
после этой операции вы увидите следующее:
deleted: <file>
Это запись об удалении файла из промежуточной директории . Если вы не хотите сохранять эту запись и просто хотите отменить предыдущую операцию с файлом, используйте git reset HEAD <file>
.
-------- КОНЕЦ ОТВЕТА --------
PS: я заметил несколько упомянутых ответов:
git checkout -- <file>
Эта команда предназначена для ситуации, когда файл был подготовлен , но файл был изменен в рабочий каталог после того, как он был подготовлен, используйте эту операцию для восстановления файла в рабочий каталог из промежуточный каталог . Другими словами, после этой операции изменения происходят в вашем рабочем каталоге , а НЕ в промежуточном каталоге .