Удалять файлы из индекса git, когда они уже удалены из fs
У меня есть куча файлов, удаленных из fs и перечисленных как удаленных в git status.
Как я могу выполнить эти изменения быстрее, чем запуск git rm для каждого файла?
Ответ 1
Вы можете сделать это с помощью
git ls-files --deleted -z | xargs -0 git rm
Всякий раз, когда задается этот вопрос, люди предлагают git add -u, но проблема с этим ответом заключается в том, что он также выполняет другие модификации вашей рабочей копии, а не только удаления. Во многих ситуациях это может быть хорошо, но если вы хотите просто сфокусировать удаление файлов, которые были удалены из рабочей копии, предложение, которое я сделал, более точно.
На самом деле раздел документации git rm, в котором обсуждается, как делать то, что вы хотите - я считаю, что команда, предложенная в "Другие способы" эквивалентны тому, что я предложил здесь.
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" для создания полного удаленного каталога.