我想取消暂存所有文件删除。有没有简单的方法?
我想将此应用于所有删除的文件模式。
的输出git status --porcelain
是为以下任务构建单行代码和脚本的好方法:
git status --porcelain | awk '$1 == "D" {print $2}' | xargs git reset HEAD
如果您返回的路径/文件名git status
包含
space
字符,则awk
可以修改调用以包含整个(引用的)路径/文件名,包括空格:
git status --porcelain|awk '$1 == "D" {print substr($0, index($0,$2))}'|xargs git reset HEAD
以防万一其他人将 git 与 PowerShell 一起使用,这里是 @jefromi 出色答案的 powershell 版本:
git status --porcelain | where { $_.StartsWith(" D") } | foreach-object { git reset HEAD $_.replace(" D ", "") }
请参阅本书中的“取消暂存文件”部分。