从Git - 命令行一次删除多个已删除的项目

时间:2014-01-02 21:15:30

标签: git

如何通过命令行一次删除多个“已删除”文件?在我使用以下命令向git添加更多文件之后:

git add .

在运行命令Changes not staged for commit:

之后,需要从git中删除一些文件,例如在标题git status下删除的文件
 deleted:    app/assets/javascripts/winter.js
 deleted:    app/views/comments/create.js.coffee
 deleted:    app/views/designs/index.json.jbuilder

我有大约25个需要删除的文件。现在,我知道的唯一方法就是单独删除每个:

git rm app/assets/javascripts/winter.js

如何用一个命令删除所有这些?只是为了让我的生活更轻松。

3 个答案:

答案 0 :(得分:5)

为此,我使用:

git add -u .

来自git手册页:

  

仅匹配索引中已跟踪的文件   而不是工作树。这意味着它永远不会是新的   文件,但它将修改跟踪文件的新内容   并且如果工作树中的相应文件已被删除,它将从索引中删除文件

     

如果没有,则默认为“。”;换句话说,更新   当前目录及其子目录中的所有跟踪文件。

这也会对所有跟踪文件进行更改,但不会添加新文件。

答案 1 :(得分:0)

如果您只想使用bash语法,可以执行以下操作:

git rm app/{assets/javascripts/winter.js,views/comments/create.js.coffee,views/designs/index.json.jbuilder}

答案 2 :(得分:0)

我会用单行bash“脚本”来做这件事,例如,

git status | awk '/deleted: / { printf "git rm %s\n", $2 }' | sh -x

要测试它是否会按照您的预期进行测试,请将| sh -x保留在最后,以便只打印命令。