Как подготовить только удаленные файлы в Git для Windows?

Предположим, я запустил git status и удалил, изменил и другие изменения.

Как подготовить только удаленные файлы?

Я попробовал ответ в этом посте:

git ls-files - удалено | xargs git add

но это не похоже на работу под окнами.

1 ответ

Windows не предоставляет xargs команда, и это делает бесполезным большинство предложений о том, как решить эту проблему, в том числе те, которые приведены на странице документации git add или же git rm,

Но документация git rm предлагает одну команду, которая может быть использована для создания списка команд, которые могут решить эту проблему. Команда:

git diff --name-only --diff-filter=D --line-prefix="git rm "

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

После того, как вы запустите его как есть и проверьте его вывод, вы можете перенаправить его вывод в .cmd файл (скажем, rm-deleted.cmd) добавив > rm-deleted.cmd в командной строке, а затем запустите сгенерированный скрипт (rm-deleted.cmd) чтобы достичь своей цели. Затем вы можете удалить скрипт (del rm-deleted.cmd); это не общий инструмент для повторного использования, а просто одноразовый скрипт, который удаляет из индекса определенный список файлов.

Узнайте больше об аргументах git diff,


У меня нет экземпляра Windows под рукой, и я не знаю, как Git обрабатывает файлы, в именах которых есть пробелы. Я подозреваю, что этот скрипт не может работать с такими файлами. Если у вас есть файлы или каталоги, в именах которых есть пробелы, вы должны открыть сгенерированный скрипт в программном редакторе, заменить все вхождения git rm с git rm " и добавить цитаты (") после каждой строки (вам нужен редактор программ, чтобы можно было искать и заменять конец строк).

Оборачивая имена файлов в кавычки, командная строка Windows передает их правильно git rm и Git может идентифицировать файлы и удалить их из индекса.

Другие вопросы по тегам