[英]How to delete a single git repository clone, without the rm -rf sledgehammer?
簡單地使用rm -r
刪除git repo是不可能的,因為.git
目錄包含許多寫保護文件。 我有權刪除這些因為我是所有者,但是逐一確認它們是不可行的。
現在,可以通過向rm
添加-f
標志在一個命令中完成所有操作,但這意味着我將失去所有保護,以防止刪除受到保護的內容。 比如,例如,另一個帶有本地分支的git存儲庫,我尚未推送。
但這似乎是唯一的方法,所以我發現自己最近做了很多rm -rf
,但我總是對此感到不安。 是否有更好的方法來擺脫單個repo克隆,這不會詢問成千上萬的單個文件,但如果我嘗試刪除一些東西而不是單個回購郵件會失敗? 理想情況下,在實際刪除它之前,它還應該檢查我嘗試刪除的repo是否有一些最新的遙控器。
我不太清楚這個問題有什么不清楚......就是這樣:
如何刪除包含所有內容的存儲庫,使用的命令不會破壞其中包含寫保護文件的任何其他目錄?
首先,您收集所有垃圾對象:
git gc --prune=all
然后只剩下一個包文件,它是只讀的,以及相應的包索引,它也是只讀的。 現在
cd ..
rm -r repo
只會要求兩次確認而不是數千次。
但是,這並不能防止刪除已簽出的子模塊。
您可以在.bashrc中創建一個小bash函數:
function rmgit() {
# Recursively apply write permissions to files in the .git folder
chmod -R +w "${1}/.git"
# Remove the clone
rm -r "${1}"
}
啟動一個新shell,你現在應該能夠:
rmgit /path/to/clone
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.