• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • git clean

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

    语法

    git clean [-d] [-f] [-i] [-n] [-q] [-e ] [-x | -X] [--] <path>…
    • 通过从当前目录开始递归地移除不受版本控制的文件来清除工作树。
    • 通常,只有 Git 未知的文件才会被删除,但是如果-x指定了该选项,则也会删除被忽略的文件。例如,这可以用于删除所有构建产品。
    • 如果<path>…给出任何可选参数,则只有那些路径受到影响。


    用法

    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 的时候非常有用。

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

    git reset --hard
    git clean -df
    

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

    上篇:git reset

    下篇:git branch