我們的開發人員之一意外地將他的本地回購推到錯誤的共享回購。撤銷GIT推送到錯誤的共享回購
我設法使用git push和force將頭重置到正確的位置,以便現在可以正常工作。
但是,我一直無法擺脫錯誤的提交,它顯示在gitk - 所有沒有父母和沒有孩子(即它沒有連接到任何分支)的提交。
是否有辦法徹底擺脫這一個(我們凍結共享回購所以沒有人從上次推動拉)?
我們的開發人員之一意外地將他的本地回購推到錯誤的共享回購。撤銷GIT推送到錯誤的共享回購
我設法使用git push和force將頭重置到正確的位置,以便現在可以正常工作。
但是,我一直無法擺脫錯誤的提交,它顯示在gitk - 所有沒有父母和沒有孩子(即它沒有連接到任何分支)的提交。
是否有辦法徹底擺脫這一個(我們凍結共享回購所以沒有人從上次推動拉)?
您可以在遠程存儲庫中運行git gc
。如果提交無法從任何引用中獲取,則應從存儲庫中刪除該提交。請務必在之前進行備份。
這是奇怪的狀態,我做了很多次這樣的更正,從來沒有看到這些單獨的提交。 你是否在本地對repo本身運行gitk,或者一些克隆?
我推高了一些空的/不相關的提交併再次查看 - 可能小故障消失。如果沒有,我會運行git fsck
。
此外,如果您克隆中央倉庫,您是否看到克隆中的超額提交?
錯誤提交仍然存在於git倉庫中,但如果我理解正確,它不會被任何其他提交(或分支)引用。
git gc
將按照以前的答案已知的方式移除此提交,但它不會刪除比2周更新的對象。 (爲了防止你丟失數據)。
如果你確實知道你在做什麼(有備份等),你可以做git gc --prune=<date>
。 git gc
的幫助狀態:
「剪掉比日期更早的對象(默認爲2周前,可由配置變量gc.pruneExpire覆蓋)。默認情況下此選項處於打開狀態。