亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

列出并刪除沒有分支的Git提交(懸空?)

列出并刪除沒有分支的Git提交(懸空?)

Git
www說 2019-07-31 18:09:07
列出并刪除沒有分支的Git提交(懸空?)我有一個Git存儲庫,有很多提交,沒有特定的分支,我可以git show,但當我嘗試列出包含它們的分支時,它報告什么都沒有。我認為這是懸掛的提交/樹問題(由于-D分支),所以我修剪了回購,但之后我仍然看到相同的行為:$ git fetch origin$ git fsck --unreachable$ git fsck沒有輸出,沒有懸空(對吧?)。但提交存在$ git show 793db7f272ba4bbdd1e32f14410a52a412667042commit 793db7f272ba4bbdd1e32f14410a52a412667042Author: ...它不能通過任何分支到達$ git branch --contains 793db7f272ba4bbdd1e32f14410a52a412667042沒有輸出。這個提交的狀態究竟是什么?如何列出處于類似狀態的所有提交?如何刪除那些提交?
查看完整描述

3 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

沒有輸出,沒有懸空(對吧?)

請注意,從您的reflog引用的提交被認為是可訪問的。

這個提交的狀態究竟是什么?如何列出具有類似狀態的所有提交

通過--no-reflogs說服git fsck向他們展示。

如何刪除那些提交?

一旦您的reflog條目過期,那么這些對象也將被清除git gc。

到期由調控gc.pruneexpiregc.reflogexpiregc.reflogexpireunreachable設置。參看 git help config

默認值都很合理。


查看完整回答
反對 回復 2019-07-31
?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

要刪除所有懸空提交以及可從reflog中訪問的提交,請執行以下操作:

git reflog expire --expire-unreachable=now --allgit gc --prune=now

但請確保這是你想要的。我建議你閱讀手冊頁,但這里是要點:

git gc刪除無法訪問的對象(提交,樹,blob(文件))。如果某個對象不屬于某個分支的歷史記錄,則該對象無法訪問。實際上它有點復雜:

git gc 做其他一些事情,但它們在這里并不重要,也沒有危險。

不會刪除小于兩周的無法訪問的對象,因此我們使用的--prune=now方法是“刪除之前創建的無法訪問的對象”。

也可以通過reflog訪問對象。雖然分支記錄了某個項目的歷史記錄,但是reflog記錄了這些分支的歷史記錄。如果你修改,重置等提交將從分支歷史記錄中刪除,但是如果你意識到你犯了錯誤,git會保留它們。Reflogs是一種方便的方法,可以找出在分支(或HEAD)上執行的破壞性(和其他)操作,從而更容易撤消破壞性操作。

因此,我們還必須刪除reflog以實際刪除從分支無法訪問的所有內容。我們通過使--allreflogs 到期來實現這一目標。git再次保留了一些reflog以保護用戶,所以我們再次告訴它不要這樣做:--expire-unreachable=now。

由于我主要使用reflog來從破壞性操作中恢復,我通常會使用--expire=now它來完全消除reflog。


查看完整回答
反對 回復 2019-07-31
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

我有同樣的問題,仍然遵循這個線程中的所有建議:


git reflog expire --expire-unreachable=now --all

git gc --prune=now

git fsck --unreachable --no-reflogs   # no output

git branch -a --contains <commit>     # no output

git show <commit>                     # still shows up

如果它不是reflog而不是分支,...它必須是一個標簽!


git tag                             # showed several old tags created before the cleanup

我刪除了標簽git tag -d <tagname>并重新進行了清理,舊的提交已經消失。


查看完整回答
反對 回復 2019-07-31
  • 3 回答
  • 0 關注
  • 1220 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號