Unstage все удаленные файлы в Git - PullRequest
7 голосов
/ 22 ноября 2010

Я хочу отменить удаление всех файлов.Есть ли простой способ?

Я хочу применить это к шаблону файлов всех удалений.

Ответы [ 4 ]

23 голосов
/ 22 ноября 2010

Вывод git status --porcelain является отличным способом создания однострочников и сценариев для таких задач:

git status --porcelain | awk '$1 == "D" {print $2}' | xargs git reset HEAD
1 голос
/ 07 октября 2014

В случае, если ваши пути / имена файлов, возвращаемые из git status, содержат space символов, вызов awk можно изменить, включив в него весь (указанный) путь / имя файла, включая пробелы:

git status --porcelain|awk '$1 == "D" {print substr($0, index($0,$2))}'|xargs git reset HEAD
0 голосов
/ 06 мая 2015

На всякий случай, если кто-то еще использует git с PowerShell, вот версия от PowerShell отличного ответа @ jefromi:

git status --porcelain | where { $_.StartsWith(" D") } | foreach-object { git reset HEAD $_.replace(" D ", "") }
0 голосов
/ 22 ноября 2010

См. Раздел «Восстановление промежуточного файла» в этой книге .

...