Ставьте только удаленные файлы с помощью git add

Я запустил git status и вижу несколько измененных файлов и несколько удаленных файлов. Можно ли ставить только удаленные или только измененные файлы?

9 ответов

Если у вас есть смесь измененных и удаленных файлов и вы хотите поместить только удаленные файлы в индекс, вы можете использовать git ls-files в качестве фильтра.

git ls-files --deleted | xargs git add

Если вы хотите, чтобы это применялось только к части дерева файлов, укажите один или несколько подкаталогов в качестве аргументов для ls-files:

git ls-files --deleted -- lib/foo | xargs git add

Чтобы сделать то же самое только для измененных файлов, используйте --modified (-m) вариант вместо --deleted (-d).

То же, что и ответ Steve, но с небольшим изменением:

Добавить --all в конец команды, чтобы добавить все файлы, возвращенные командой ls-files, в тайник

git ls-files --deleted | xargs git add --all

Для PowerShell

git ls-files --deleted | % {git add $_}

За всю любовь ls-files приходит сюда, мне кажется

git add --all $(git diff --diff-filter=D --name-only)

проще.

Другой путь:

      git diff --name-only --diff-filter=D | sed 's| |\\ |g' | xargs git add

я использую sed здесь, потому что пути могут содержать символы пробела.

Вы можете использовать эту команду для размещения только удаленных файлов.

      git diff --diff-filter=D --name-only -z | xargs -0 git add

Надеюсь, поможет!

В качестве альтернативы принятому ответу вы можете использовать интерактивный режим git add -i, затем выберите 2чтобы обновить файлы, которые вы хотите подготовить, и выбрать только удаленные (например, используйте диапазон 1-30).

Иногда легче запомнить.

Чтобы сделать это с помощью только основных команд, созданных для сценариев:

      git diff-files -z --diff-filter=D --name-only | git update-index -z --remove --stdin

Да.

мерзавец *

или же

git add myfile.php

или же

git add /templates/myfile.php

или же

git rm deletethis.php

или же

git rm /templates/deletethis.php

так далее

Также проверьте исходное дерево (простой в использовании графический интерфейс)

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