Git rm several files?
如何在不手动键入所有文件到
而且还可以在不手动键入
您可以将通配符赋给
例如
1 | git rm *.c |
或者你只需在另一个文件中写下所有文件的名称,比如
1 2 3 | path/to/file.c path/to/another/file2.c path/to/some/other/file3.c |
号
您可以自动执行此操作:
1 | find . -name '*.c' > filesToRemove.txt |
打开文件并查看名称(以确保它是正确的)。
然后:
1 | cat filesToRemove.txt | xargs git rm |
。
或:
1 | for i in `cat filesToRemove.txt`; do git rm $i; done |
查看
只需使用任何其他方法(explorer,随便什么)删除它们,然后运行
如果要同时删除多个文件,您可能需要在此处签出答案。
您可以删除不需要的文件并运行以下命令:
在POSIX系统上,您可以创建一个与所有所需文件匹配的shell glob,只需将其传递给
任何将文件列表传递给shell命令的策略都适用于接受文件路径的git命令。
你只需使用
1 | find . -name '*.DS_Store' | xargs git rm |
。
删除许多与通配符匹配的文件。
在Windows10上,使用git bash,从文件结构中的
1 | git rm -r --cached some_directory/ |
。
我只是用这个来递归地忽略整个目录。这是我的
1 2 | # Use .gitignore to ignore a directory and its contents # /some_directory/ |
我发现埃多克斯(EDOCX1)(0)处理外卡的方式很烦人。find可以在一行中完成这个技巧:埃多克斯1〔8〕
您可以简单地使用:
1 | git add -u |
。
您还可以查看cygwin,因为它在Windows上提供了许多Unix/Linux/*BSD功能。Cygwin包括一个bash shell和find(1),以及上面提到的其他工具。(我通常在Windows7上有2-4个CygwinMintty终端,因为我觉得Cygwin很方便。)