git clean

2020-05-03

 

git clean命令用来从你的工作目录中删除所有没有tracked过的文件

git clean经常和git reset --hard一起结合使用,git reset只影响被track过的文件, 所以需要clean来删除没有track过的文件. 结合使用这两个命令能让你的工作目录完全回到一个指定的<commit>的状态.

 


 

用法

git clean -n

显示哪些文件会被删除. 该指令不会真正的删除文件, 只是一个提醒。

$ git clean -n
Would remove .gitmodules
Would remove 51.txt

 

git clean -f

删除当前目录下所有没有track过的文件。不会删除.gitignore文件里面指定的文件夹和文件, 不管这些文件有没有被track过。

git clean -f <path>

删除指定路径下的没有被track过的文件。

 

git clean -df

删除当前目录下没有被track过的文件和文件夹。

git clean -xf

删除当前目录下所有没有track过的文件。不管他是否是.gitignore文件里面指定的文件夹和文件


 

 

git clean对于刚编译过的项目也非常有用. 如, 能删除掉编译后生成的.o和.exe等文件. 这个在打包要发布一个release的时候非常有用。

下面的例子要删除所有工作目录下面的修改, 包括新添加的文件. 假设你已经提交了一些快照了, 而且做了一些新的开发

git reset --hard

git clean -df

运行后, 工作目录和缓存区回到最近一次commit时候一摸一样的状态,git status会告诉你这是一个干净的工作目录, 又是一个新的开始了!

 

 

Ref:

https://www.jianshu.com/p/0b05ef199749

 

上一篇:ASP.NET页面之间传递值(3):Cookie


下一篇:git 文件名包含空格处理办法