Git
刪除 .gitignore 中提到的任何文件
我在文件中有以下條目,
.gitignore
我想刪除它們。原因是因為這些文件是在 TeX 編譯期間創建的臨時垃圾文件,我希望能夠刪除它們。我怎麼能這樣做?
git clean -Xdf
使用大寫
-X
,git clean
僅刪除匹配的文件.gitignore
。使用
-d
,git clean
也會刪除匹配的整個目錄.gitignore
。使用
-f
,git clean
實際上會刪除內容而不是警告您。不過要小心。可能還有其他原因(例如個人direnv
配置).gitignored
,因此請確保始終了解此命令在執行之前將執行的操作。特別感謝@Kusalananda 的分享
git clean
。作為替代方案,如果您有一個包含符號連結目錄的依賴項文件夾,並且您不想
git clean
遞歸刪除這些目錄中的所有內容*,*則可以使用這種更長的形式:git ls-files --others --ignored --exclude-standard --directory | head -c -1 | tr '\n' '\0' | xargs -0 -r rm -r
git ls-files
使用這些選項列出與 相同的目錄git clean -Xdn
,但更具機器可讀性。
head -c -1
修剪尾隨換行字節。
tr '\n' '\0'
將所有換行符轉換為NUL
s。
xargs -0 -r rm -r
刪除文件和目錄。-0
使NUL
分隔符。-r
導致它跳過空輸入(警告:這是一個不可移植的 GNU 擴展)。
git clean -X -f -n
git clean -X
將刪除與.gitignore
. 最後-n
導致它實際上不刪除文件,只是空執行,報告將被刪除的文件。添加
-d
以刪除被忽略的目錄。沒有
-X
,它會刪除未跟踪的文件(但不是忽略的文件)。見
git clean --help
。