如何添加和提交使用“rm”而不是“git rm”创建的删除?
我使用rm
,Finder等从Git仓库中删除了一堆文件和目录。
我正在寻找一个Git命令,它会将这些记录记录到标记为删除的索引中,就好像我已经对它们调用了git rm
一样。
我知道git add -u
会做到这一点,以及其他一些事情。 我希望我的命令专门处理清除。
文件名中没有空格:
$ git rm `git ls-files -d`
更强大:
$ git ls-files -z -d | xargs -0 --no-run-if-empty git rm
看一下Jonio C Hamano写的“Re:[PATCH 1/2]文档:'git add -A'可以删除文件”在git邮件列表中发布,即这个问题看起来像是XY问题(你在问关于假设解决方案Y的问题,而不是问题X本身)。 问题的解决方案(如果它真的是“XY问题”的情况)可能是:
git commit -a
,它会自动选择删除,在工作目录中提交跟踪文件的当前状态
git add -A
,它会添加不会忽略未跟踪的文件并删除不再存在的文件,例如,如果您想从工作目录的横向更新创建提交,例如解包快照或rsync的结果。
尽管如此,如果你问的是一个问题(而不是解决方案),那么正如你从其他答案中看到的那样,有工具可以做到这一点。
查尔斯贝利的回答让我意识到这一点,但我仍然欢迎更短的东西。
$ git diff --name-only --diff-filter=D | xargs git rm
链接地址: http://www.djcxy.com/p/45273.html
上一篇: How to add and commit removals made with "rm" instead of "git rm"?