У меня есть куча файлов, удаленных из fs и перечисленных как удаленных в git status
.
Как я могу выполнить эти изменения быстрее, чем запуск git rm
для каждого файла?
У меня есть куча файлов, удаленных из fs и перечисленных как удаленных в git status
.
Как я могу выполнить эти изменения быстрее, чем запуск git rm
для каждого файла?
Вы можете сделать это с помощью
git ls-files --deleted -z | xargs -0 git rm
Всякий раз, когда задается этот вопрос, люди предлагают git add -u
, но проблема с этим ответом заключается в том, что он также выполняет другие модификации вашей рабочей копии, а не только удаления. Во многих ситуациях это может быть хорошо, но если вы хотите просто сфокусировать удаление файлов, которые были удалены из рабочей копии, предложение, которое я сделал, более точно.
На самом деле раздел документации git rm
, в котором обсуждается, как делать то, что вы хотите - я считаю, что команда, предложенная в "Другие способы" эквивалентны тому, что я предложил здесь.
Используйте -u
-flag: man git -add
git add -u .
git commit -a
будет снимать удаленные файлы (а также изменяться) и запрашивать ваше сообщение о фиксации. Обычно я выполняю git commit -av
(verbose), чтобы также видеть diffs измененных файлов.
На странице :
с помощью ключа -a с фиксацией команда для автоматического добавления изменений из всех известных файлов (т.е. всех файлов которые уже указаны в индексе) и автоматически "rm" файлы в индекс, который был удален из рабочего дерева, а затем выполните фактическая фиксация;
git add -A
выполнит эту работу для вас
Вы можете использовать git rm --cached "path/to/file"
для создания одного удаленного файла.
Используйте git rm -r --cached -- "path/to/directory"
для создания полного удаленного каталога.