我想取消暂存所有文件删除。有一个简单的方法吗?
我想将其应用于所有删除的文件模式。
答案 0 :(得分:23)
git status --porcelain
的输出是为这样的任务构建单行和脚本的好方法:
git status --porcelain | awk '$1 == "D" {print $2}' | xargs git reset HEAD
答案 1 :(得分:1)
如果从git status
返回的路径/文件名包含
space
个字符,可以修改对awk
的调用以包含
整个(引用的)路径/文件名,包括空格:
git status --porcelain|awk '$1 == "D" {print substr($0, index($0,$2))}'|xargs git reset HEAD
答案 2 :(得分:0)
以防其他人在PowerShell中使用git,这是@ jefromi的PowerShell版本的优秀答案:
git status --porcelain | where { $_.StartsWith(" D") } | foreach-object { git reset HEAD $_.replace(" D ", "") }
答案 3 :(得分:-1)
请参阅“取消暂存分阶段文件”一节in this book。