Unstage all deleted files in Git

2019-03-20 08:55发布

I want to unstage all file deletes. Is there an easy way?

I want to apply this to the file pattern of all deletes.

4条回答
我只想做你的唯一
2楼-- · 2019-03-20 09:30

The output of git status --porcelain is a great way to build one-liners and scripts for tasks like this:

git status --porcelain | awk '$1 == "D" {print $2}' | xargs git reset HEAD
查看更多
一纸荒年 Trace。
3楼-- · 2019-03-20 09:34

Just in case anyone else uses git with PowerShell, here is a powershell version of @jefromi's excellent answer:

git status --porcelain | where { $_.StartsWith(" D") } | foreach-object { git reset HEAD $_.replace(" D ", "") }
查看更多
看我几分像从前
4楼-- · 2019-03-20 09:36

See the section 'Unstaging a staged file' in this book.

查看更多
爷、活的狠高调
5楼-- · 2019-03-20 09:42

In case your path-/filenames returned from git status contain space characters, the call to awk can be modified to include the entire (quoted) path/filename including spaces:

git status --porcelain|awk '$1 == "D" {print substr($0, index($0,$2))}'|xargs git reset HEAD
查看更多
登录 后发表回答