如何添加和提交使用“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"?

    下一篇: How to change a Git remote on Heroku