用生命谱写代码的赞歌

0%

git clean 用法详解

git clean 用途

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

用法

  • git clean -n

是一次 clean 的演习,告诉你哪些文件会被删除。记住它不会真正的删除文件,只是一个提醒。

  • git clean -f

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

  • git clean -f <path>

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

  • git clean -df

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

  • git clean -xf

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

说明

git reset --hardgit clean -f 是一对好基友,结合使用他们能让你的工作目录完全回退到最近一次 commit 的时候。

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

举个例子

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

1
2
git reset --hard
git clean -df

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

参考文章