Ответ 1
Следующий script может выполнять эту работу, хотя это не чисто git решение.
git status -s | awk '{if($1=="D") { print $2 }}' | xargs git checkout --
У меня есть рабочая папка со многими файлами и многими удаленными файлами. Я хочу reset удалить все удаленные файлы в текущую HEAD и оставить только измененные файлы. Как я могу это сделать?
Следующий script может выполнять эту работу, хотя это не чисто git решение.
git status -s | awk '{if($1=="D") { print $2 }}' | xargs git checkout --
git checkout -- <deleted_file_name>
должен решить вашу проблему. Вы можете указать несколько имен файлов в качестве аргументов этой команды.
git ls-files -d | xargs git checkout --
Разломается с файлами с пробелами по имени. В противном случае отлично работает.