2010-11-22 7 views

답변

23

git status --porcelain의 출력은 다음과 같이 작업 한 라이너와 스크립트를 구축 할 수있는 좋은 방법입니다 : 당신의 경로 생성이/파일 이름 git status에서 반환 된 경우

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

굉장합니다. 감사!! 내가 grep, sed 및 awk를 배울 필요가있는 것처럼 보입니다. – Jacko

+1

@ 자코 : 확실히 편리한 물건. 'sed -n '/^D/s/^ D // p'도 쉽게 sed를 써서 할 수 있습니다. – Cascabel

+0

내 이전 주석에 작은 따옴표가 없습니다. – Cascabel

-1

'스테이지 파일 unstaging'섹션 참조. in this book.

+0

링크는 보이지만 책이 도움이 이제 재미있는 장소로 이동합니다. – hiwaylon

1

space 문자를 포함, awk에 대한 호출

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

단지의 경우 다른 사람 용도에 다음 전체 (인용) 경로/파일 이름을 포함하여 공간을 포함하도록 수정 될 수있다 PowerShell을 이눔 아, 여기 @ jefromi의 훌륭한 대답의 파워 쉘 버전입니다 :

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