簡體   English   中英

如何刪除未使用的 git 遠程提交?

[英]How to remove unused git commits remote?

最近我使用git rebase -i --root master清理了我的 git 存儲庫。 我將一些提交壓縮在一起,編輯了一些,相應地設置了時間,最后我使用git push --force-with-lease origin master將我的本地 state 推送到遠程。

這工作得很好,我的倉庫現在已清理,如此處所示,但不知何故,我能夠找到一個舊的提交 hash,當通過 url 明確搜索它時,我仍然能夠查看不再使用的舊樹如此所見。

所以我的問題是是否以及如何從我的遠程存儲庫中刪除這些舊的提交/樹?

有任何想法嗎?

你可能想檢查這個答案

TL;博士:

如果它們不屬於分支或標簽,它們將在一段時間后被刪除。

如果要手動刪除它們,可以使用pick and drop命令。

選擇提交哈希
刪除提交哈希

例如:
git rebase -i --root master
選擇 2d224bc6cec9b33ae9b910dbef5efdd707625383
下降 2d224bc6cec9b33ae9b910dbef5efdd707625383

“刪除”一個提交實際上並沒有刪除它:它會停留一段時間。 除非您將 hash ID 保存在某處,否則您將無法再找到它。

您保存了 hash ID 3597386eaa550367e5531e4ec019f04e1d7e40df More precisely, the GitHub URL you saved includes the hash ID, which you then present to GitHub, so that they can use the hash ID on their side—and that still locates the commit, which is still there.

它將繼續存在,直到不再存在。 確切的時間很難說:Git 有一個維護命令可以清理未使用的提交。 在您自己的存儲庫副本中,您可以按照自己的計划運行此維護命令。 在 GitHub 上的副本中,您受其維護計划的支配。

(如果它真的很重要,您可以要求 GitHub 人員進行早期清理。但是,您可以通過這種方式處理的大多數事情(例如擺脫暴露密碼的提交)都已進入“太遲”時期到你可以真正完成它的時候,所以很少有理由為此煩惱。)

接受的答案很棒。

不過,我想補充的是GitLab允許您調整清理作業( git gcgit repack )在刪除存儲庫上執行的頻率,請參閱文檔以獲取詳細信息。

暫無
暫無

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

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