Упрощенный способ создания только измененных файлов в Git (не удаляется)

У меня есть куча удаленных файлов в моей рабочей ветке, и я не уверен, что хочу ее совершить. Однако мне нужно зафиксировать измененные файлы.

Вот что я придумал:

git add `git status | grep modified | cut -f2 | cut -f4 -d' '`

Этот ответ делает что-то подобное, но не намного лучше: qaru.site/info/1064/...

Итак, есть более простое решение?

Ответ 1

Просто используйте git add --no-all . (Git v. 2.0+) или git add . (Git v. 1.x). Это найдет все файлы, которые можно найти, пройдя текущий каталог, который, естественно, не будет содержать удаленные файлы.

Конечно, это также подбирает и любые невоспроизводимые файлы. Если вам нужно их избегать, вы можете использовать более сложное выражение. Он похож на ваш, но он использует вывод, предназначенный для сценариев (поэтому он более стабилен и проще разбирается):

git diff-files -z --diff-filter=M --name-only --relative | xargs -0 git add