Git rm几个文件?

Tow*_*wer 20 git git-rm

如何在不手动输入所有文件的完整路径的情况下轻松删除多个文件git rm?我有很多我想保留的修改过的文件,因此删除所有已修改的文件也是不可能的.

而且还可以在不手动输入的情况下还原多个文件的更改git checkout -- /path/to/file

Man*_*ish 28

你可以给通配符git rm.

例如

git rm *.c
Run Code Online (Sandbox Code Playgroud)

或者你可以写下另一个文件中所有文件的名称,比如说filesToRemove.txt:

path/to/file.c
path/to/another/file2.c
path/to/some/other/file3.c
Run Code Online (Sandbox Code Playgroud)

你可以自动化:

find . -name '*.c' > filesToRemove.txt
Run Code Online (Sandbox Code Playgroud)

打开文件并查看名称(以确保它没问题).

然后:

cat filesToRemove.txt | xargs git rm
Run Code Online (Sandbox Code Playgroud)

要么:

for i in `cat filesToRemove.txt`; do git rm $i; done
Run Code Online (Sandbox Code Playgroud)

检查联机帮助页以xargs获取更多选项(特别是如果文件太多).


Ana*_*tts 9

只需使用任何其他方法(资源管理器,无论如何)删除它们,然后运行git add -A.至于还原多个文件,您还可以签出目录.


CpI*_*ILL 5

我发现git rm对通配符的处理很烦人。Find 只需一行即可完成此操作: 文件 find . -name '*.c' -exec git rm {} \; 名将{}被替换。它的伟大之处find在于它可以过滤各种各样的文件属性,而不仅仅是名称。