Удалите файлы из git index, когда они уже удалены из fs - PullRequest
32 голосов
/ 23 мая 2011

У меня есть куча файлов, удаленных из фс и перечисленных как удаленные в git status.

Как я могу выполнить эти изменения быстрее, чем запускать git rm для каждого файла?

Ответы [ 5 ]

77 голосов
/ 23 мая 2011

Вы можете сделать это с помощью:

git ls-files --deleted -z | xargs -0 git rm

Каждый раз, когда задают этот вопрос, люди предлагают git add -u, но проблема с этим ответом заключается в том, что он также вносит другие изменения в вашу рабочую копию, а не толькоудаления.Это может быть хорошо во многих ситуациях, но если вы хотите просто поэтапно удалить файлы, которые были удалены из рабочей копии, я сделал более точное предложение.

На самом деле aраздел git rm документации , в котором обсуждается, как делать то, что вы хотите - я считаю, что команда, предложенная в разделе «Другие способы», эквивалентна тому, что я предложил здесь.

13 голосов
/ 23 мая 2011

Используйте флаг -u: man git-add

git add -u .
2 голосов
/ 16 января 2015

Вы можете использовать git rm --cached "path/to/file" для создания одного удаленного файла.

Используйте git rm -r --cached -- "path/to/directory" для подготовки полного удаленного каталога.

2 голосов
/ 23 мая 2011

git add -A

сделает всю работу за вас

2 голосов
/ 23 мая 2011

git commit -a установит удаленные файлы (а также измененные) и запросит у вас сообщение о коммите.Я обычно выполняю git commit -av (подробный), чтобы также увидеть различия в измененных файлах.

Со страницы :

с помощью ключа -a скоманда commit для автоматического «добавления» изменений из всех известных файлов (т. е. всех файлов, которые уже перечислены в индексе), а также для автоматического «удаления» файлов в индексе, которые были удалены из рабочего дерева, и затем выполнения фактического принятия;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...