撤消GIT推送到错误的共享仓库

时间:2013-06-30 21:10:20

标签: git commit undo

我们的一位开发人员意外地将他的本地仓库推到了错误的共享仓库。

我已设法使用git push和force将标题重置到正确的位置,因此该部分现在可以。

然而,我无法摆脱错误的提交,它出现在gitk --all作为一个没有父级和没有子级的提交(即它没有连接到任何分支)。

有没有办法彻底摆脱这一个(我们冻结了共享的回购,所以没有人从最后一次推动以来拉过)??

3 个答案:

答案 0 :(得分:1)

错误提交仍然在git存储库中,但如果我理解正确,则不会被任何其他提交(或分支)引用。

git gc将删除此提交,因为您已经知道之前的答案,但它不会删除超过2周的对象。 (为了防止您丢失数据)。

如果您确定自己在做什么(有备份等),可以git gc --prune=<date>git gc州的帮助:

“修剪早于日期的松散对象(默认为2周前,可通过配置变量gc.pruneExpire覆盖)。默认情况下,此选项处于启用状态。”

答案 1 :(得分:0)

您可以在远程存储库中运行git gc。如果无法从任何引用访问提交,则应从存储库中删除它。请务必先进行备份。

答案 2 :(得分:0)

这是一种奇怪的状态,我多次做过这样的修正,从未看过那​​些单独的提交。 你在本地的repo本身运行gitk,还是克隆?

我会推翻一些空的/不相关的提交并再看一遍 - 可能是故障就消失了。如果不是,我会运行git fsck

另外,如果您克隆中央仓库,您是否在克隆中看到了多余的提交?