簡體   English   中英

提交后,如何 gitignore git 存儲庫中的所有單個文件擴展名文件?

[英]How do you gitignore all single file extension files from a git repository after committing?

我剛開始使用 git,想知道如何從 git 存儲庫中刪除所有緩存的.exe文件(我想將它們保留在我的工作文件夾中)。 根文件夾包含也包含.exe文件的子文件夾。 以下命令會起作用還是我必須做其他事情? 我知道 -r 用於刪除目錄而不是文件,它似乎是錯誤的,在搜索這個主題時,我發現唯一相關的事情是使用finddelete命令,但我不確定如何使用它們。

git rm --cached -r *.exe

編輯:我運行了命令,它只從根文件夾中刪除了 .exe 而不是子文件夾 手動列出所有子文件夾路徑並運行該命令是唯一的選擇嗎?

由於需要傳遞帶有緩存標志的 git 命令,對於不熟悉 linux/unix 中的鏈接命令的人來說,遞歸刪除 unix 答案是不夠的。

這應該這樣做(在sh兼容的 shell 中):

find . -name '*.exe' -exec git rm --cached '{}' \;

或者,不那么優雅但更容易組合:

ls -R | grep '.exe$' | xargs git rm --cached

您的git rm -r命令的問題在於它只會遞歸到名稱以.exe結尾的目錄中,這顯然不是您想要的。

轉義通配符,讓 Git 看到它而不是你的 shell:

git rm -n --cached \*.exe

(如果你喜歡你所看到的,然后在沒有-n情況下重新運行)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM