【学了就忘】Git操作 — 50.git clean 命令

1、 git clean 命令介绍

对于工作目录中一些工作或文件,你想做的也许不是stash存储,而是移除,即: 清理工作目录。

可以使用git clean 命令来处理这个问题。

git clean命令是用来从你的工作目录中,删除所有未被Git追踪过的文件。

git clean命令经常和git reset --hard命令一起结合使用。因为记住reset回退,只影响被追踪过的文件,所以需要clean命令,来删除没有track过的文件。

结合使用这两个命令,能让你的工作目录完全回滚到一个指定的commit状态。

2、git clean 命令用法

  1. git clean -n:是一次git clean的演习,告诉你哪些文件会被删除。记住他不会真正的删除文件, 只是一个提醒。(也就是查看可使用git clean命令清除的文件)

    使用``--dry-run选项也可以。

    在清理工作目录前,强烈建议使用-n参数,来先看看将会删掉哪些文件,防止重要文件被误删。

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

    -f选项:表示着“强制(force)”或“确定要移除”,默认为true,如果需要修改,需要编辑Git 配置变量 clean.requireForce 参数。

  3. git clean -f <path>:删除指定路径下的没有被track过的文件。

  4. git clean -df:移除工作目录中所有未追踪的文件以及空的文件夹。

  5. 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>
    
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章