Ответ 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