如何使用"rm"而不是"git rm"添加和提交删除?

kch*_*kch 18 git version-control

我使用rmFinder等从Git存储库中删除了一堆文件和目录.

我正在寻找一个Git命令,它会将这些记录到索引标记为删除,就好像我已经调用git rm它们一样.

我理解git add -u会这样做,还有其他一些事情.我希望我的命令专门处理删除.

Gre*_*con 33

文件名中没有空格:

$ git rm `git ls-files -d`
Run Code Online (Sandbox Code Playgroud)

更强大:

$ git ls-files -z -d | xargs -0 --no-run-if-empty git rm
Run Code Online (Sandbox Code Playgroud)

  • 请注意,它需要从您的 repo 的顶级目录运行。 (2认同)

Jak*_*ski 5

看看Jonio C Hamano在" Re:[PATCH 1/2]文档中写道:'git add -A'可以删除文件 "发布在git邮件列表中,即这个问题看起来像XY问题(你问的是假设的解Y问题,而不是问题X本身).问题的解决方案(如果真的是"XY问题"情况)可能是:

  • git commit -a,它会自动获取删除,提交工作目录中跟踪文件的当前状态

  • git add -A,这将添加未被忽略的未跟踪文件并删除不再存在的文件,例如,如果您想从工作目录的侧向更新创建提交,例如解包快照或rsync的结果.

然而,如果你问的是一个问题(而不是解决方案),那么你可以从其他答案中看到,有一些工具可以做到这一点.