Я думаю, ви, мабуть, заплуталися в понятті індексу , як @CB Бейлі прокоментував:
Область постановки - індекс.
Ви можете просто розглядати каталог та покажчик постановок як одне і те ж.
Отже, як і у відповіді @Tim Henigan , я думаю:
ви просто хочете "скасувати" те, git add
що було зроблено для цього файлу.
Ось моя відповідь:
Зазвичай є два способи скасувати операцію на етапі , як і інші відповіді, про які вже говорилося:
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>
Ця команда призначена для ситуації, коли файл був інсценований , але файл був змінений у робочому каталозі після його інсценізації, використовуйте цю операцію для відновлення файлу в робочому каталозі з каталогу постановки . Іншими словами, після цієї операції зміни відбуваються у вашому робочому каталозі , а не у вашому каталозі інсценізації .