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