2010-11-22 3 views

ответ

23

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

git status --porcelain | awk '$1 == "D" {print $2}' | xargs git reset HEAD 
+0

удивительный. Благодаря!! Похоже, мне нужно узнать, что у меня есть grep, sed и awk. – Jacko 2010-11-22 20:19:57

-1

См. Раздел «Непостроенный поэтапный файл» in this book.

+0

Ссылка на интересное место теперь кажется, но книга полезна. – hiwaylon 2012-10-08 15:33:31

1

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

git status --porcelain|awk '$1 == "D" {print substr($0, index($0,$2))}'|xargs git reset HEAD 
0

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

git status --porcelain | where { $_.StartsWith(" D") } | foreach-object { git reset HEAD $_.replace(" D ", "") }