如何通过命令行一次删除多个“已删除”文件?在我使用以下命令向git添加更多文件之后:
git add .
在运行命令Changes not staged for commit:
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
如何用一个命令删除所有这些?只是为了让我的生活更轻松。
答案 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
保留在最后,以便只打印命令。