Подтвердить что ты не робот

Удалять файлы из индекса git, когда они уже удалены из fs

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

git add -u .

Ответ 3

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

На странице :

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

Ответ 4

git add -A

выполнит эту работу для вас

Ответ 5

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

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