2013-06-30 82 views
1

我們的開發人員之一意外地將他的本地回購推到錯誤的共享回購。撤銷GIT推送到錯誤的共享回購

我設法使用git push和force將頭重置到正確的位置,以便現在可以正常工作。

但是,我一直無法擺脫錯誤的提交,它顯示在gitk - 所有沒有父母和沒有孩子(即它沒有連接到任何分支)的提交。

是否有辦法徹底擺脫這一個(我們凍結共享回購所以沒有人從上次推動拉)?

回答

0

您可以在遠程存儲庫中運行git gc。如果提交無法從任何引用中獲取,則應從存儲庫中刪除該提交。請務必在之前進行備份。

0

這是奇怪的狀態,我做了很多次這樣的更正,從來沒有看到這些單獨的提交。 你是否在本地對repo本身運行gitk,或者一些克隆?

我推高了一些空的/不相關的提交併再次查看 - 可能小故障消失。如果沒有,我會運行git fsck

此外,如果您克隆中央倉庫,您是否看到克隆中的超額提交?

1

錯誤提交仍然存在於git倉庫中,但如果我理解正確,它不會被任何其他提交(或分支)引用。

git gc將按照以前的答案已知的方式移除此提交,但它不會刪除比2周更新的對象。 (爲了防止你丟失數據)。

如果你確實知道你在做什麼(有備份等),你可以做git gc --prune=<date>git gc的幫助狀態:

「剪掉比日期更早的對象(默認爲2周前,可由配置變量gc.pruneExpire覆蓋)。默認情況下此選項處於打開狀態。