在git中可以跟踪或取消跟踪Git工作目录中的文件。
跟踪的文件是git知道的已添加并提交的文件,也可以是未经修改,已修改或暂存的文件。除了已追踪的文件外工作目录中的所有其他文件都是未跟踪,并且git不知道这些文件。
有时候,您的git工作目录可能会被不必要的文件弄得一团糟,这些文件可能是自动生成的,合并后遗留下来的,也可能是错误创建的。在这种情况下,您可以在 .gitignore
中添加这些文件或删除它们。如果您想保持存储库的美观和整洁,更好的选择是删除不必要的文件。
在教程中介绍了如何在Git中删除未跟踪的文件。
删除未跟踪的文件
允许您删除未跟踪文件的命令是git clean
。
备份存储库始终是一个好主意,因为一旦删除存储库,文件和对其所做的更改将无法恢复。
在运行实际命令并删除未跟踪的文件和目录之前,请使用-n
选项将执行“空运行”,并向您显示将删除哪些文件和目录:
git clean -d -n
输出将如下所示:
Would remove content/test/
Would remove content/blog/post/example.md
如果上面列出的某些文件很重要,则应该使用git add
开始跟踪这些文件,或者将其添加到.gitignore
。
确定要继续删除未跟踪的文件和目录后,请输入:
git clean -d -f
该命令将打印所有成功删除的文件和目录:
Removing content/test/
Removing content/blog/post/example.md
-d
选项告诉git也删除未跟踪的目录。如果您不想删除空的未跟踪目录,请省略-d
选项。
-f
选项代表强制。如果未使用,并且Git配置变量clean.requireForce
设置为true,则Git将不会删除文件。
如果要以交互方式删除未跟踪的文件,请使用-i
选项:
git clean -d -i
输出将显示要删除的文件和目录,并询问您如何处理这些文件:
Would remove the following items:
content/test/ content/blog/post/example.md
*** Commands ***
1: clean 2: filter by pattern 3: select by numbers
4: ask each 5: quit 6: help
选择各个选项之一,然后按Enter
。
如果要将清除操作限制在指定目录中,请将路径传递到要检查未跟踪文件的目录,作为命令的参数。例如,要检查src
目录下的文件,可以运行:
git clean -d -n src
删除忽略的文件
git clean
命令还允许删除忽略的文件和目录。
要删除所有忽略和未跟踪的文件,请使用-x
选项:
git clean -d -n -x
如果只想删除忽略的文件和目录,请使用-X
选项:
git clean -d -n -X
以上命令将删除.gitignore
中列出的所有文件和目录,并保留未跟踪的文件。
结论
在本教程中,我们向您展示了如何删除Git中未跟踪的文件和目录。请记住,在实际删除文件之前,请始终先执行git clean -d -n命令。
如果您有意见,请在下面发表评论。