Я по ошибке добавил файлы, используя команду "git add dir". Я еще не запускал "git commit". Есть ли способ удалить этот каталог и все содержащиеся в нем из коммита?
Я пытался git reset dir
, но это не сработало. Видимо, git reset file
это способ отменить это. Но у меня так много файлов и так мало времени.
git reset <path>
обновляет индекс для этого пути, чтобы он соответствовалHEAD
(текущий коммит). Это не касается рабочего дерева.Ответы:
Чтобы удалить каталог и все внутри него из индекса,
В
--cached
выключателе маркаgit rm
работает на индексе только и не прикасайтесь к рабочей копии.-r
Переключатель делает его рекурсивным.источник
--cached
выключатель. Тем не менее, я отредактировал ответ, чтобы уточнить, что он относится только к индексу.git reset HEAD folder
исправляю ... но прежде чем сделать это, сделайтеgit status folder
, и убедитесь, что там написано, что он "удалил" все файлы в этой папкеВы захотите использоватьgit rm --cached -r <dir>
. эта команда удалит содержимое промежуточного каталога из индекса.если каталог уже отслежен, вы должны вручную найти новые и старые файлы и удалить их…Вероятно,git reset <dir>
после этого запустится для сброса существующих (и уже отслеженных) файлов внутри каталога.Обновление 2019:
Просто запустите
git reset directory
, он отключит все вновь добавленные файлы.источник
git reset <dir>
достаточно одинок?git reset <dir>
будет работать. Ответ с 2011 года, поэтому я не уверен, что это уже работало 8 лет назад. Я обновлю ответ. Спасибо за подсказку!Используйте
find
иxargs
:источник
Нестадийный каталог
Unstages все файлы и папки, с которыми я поставил:
Подтвердите каталог без тегов
Чтобы подтвердить удаление каталога и его содержимого из промежуточной стадии (т. Е. «Изменения, которые необходимо зафиксировать»), выполните следующее:
или
чтобы убедиться, что ни одна из папок или файлов, ранее созданных, не была сохранена.
источник
Одной простой командой для удаления подготовленного файла / папки, которые еще не зафиксированы, является -
git restore --staged <dir>
.источник