1、 git clean
命令介绍
对于工作目录中一些工作或文件,你想做的也许不是stash存储,而是移除,即: 清理工作目录。
可以使用git clean
命令来处理这个问题。
git clean
命令是用来从你的工作目录中,删除所有未被Git追踪过的文件。
git clean
命令经常和git reset --hard
命令一起结合使用。因为记住reset
回退,只影响被追踪过的文件,所以需要clean
命令,来删除没有track过的文件。
结合使用这两个命令,能让你的工作目录完全回滚到一个指定的commit状态。
2、git clean
命令用法
-
git clean -n
:是一次git clean
的演习,告诉你哪些文件会被删除。记住他不会真正的删除文件, 只是一个提醒。(也就是查看可使用git clean
命令清除的文件)使用``--dry-run
选项也可以。
在清理工作目录前,强烈建议使用
-n
参数,来先看看将会删掉哪些文件,防止重要文件被误删。 -
git clean -f
:删除当前目录下所有没有被track的文件。他不会删除.gitignore
文件里面指定的文件夹和文件,不管这些文件有没有被track过。-f
选项:表示着“强制(force)”或“确定要移除”,默认为true
,如果需要修改,需要编辑Git 配置变量clean.requireForce
参数。 git clean -f <path>
:删除指定路径下的没有被track过的文件。git clean -df
:移除工作目录中所有未追踪的文件以及空的文件夹。git clean -xf
:删除当前目录下所有没有被track过的文件. 不管他是否是.gitignore
文件里面指定的文件夹和文件。
3、总结
-
你需要谨慎地使用这个命令,因为它被设计为从工作目录中移除未被追踪的文件。如果你改变主意了,你也不一定能找回来那些文件的内容。
(删除了就找不回了,一定要慎用。但是如果被
git add
暂存过,就还能找回来。) 默认情况下,
git clean
命令只会移除没有被忽略,且未被跟踪的文件。 任何与.gitignore
或其他忽略文件中,所能模式匹配到的文件,都不会被移除。 如果你也想要移除那些文件,例如为了做一次完全干净的构建而移除所有由构建生成的.o
文件, 可以给git clean
命令增加一个-x
选项。-
使用选项
-i
参数(interactive),表示可以使用交互的模式运行git clean
命令。在这种方式下可以分别地检查每一个文件,交互的指定删除的模式。$ git clean -n -i Would remove the following item: clean.txt *** Commands *** 1: clean 2: filter by pattern 3: select by numbers 4: ask each 5: quit 6: help What now>