我们的一位开发人员意外地将他的本地仓库推到了错误的共享仓库。
我已设法使用git push和force将标题重置到正确的位置,因此该部分现在可以。
然而,我无法摆脱错误的提交,它出现在gitk --all作为一个没有父级和没有子级的提交(即它没有连接到任何分支)。
有没有办法彻底摆脱这一个(我们冻结了共享的回购,所以没有人从最后一次推动以来拉过)??
答案 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
。
另外,如果您克隆中央仓库,您是否在克隆中看到了多余的提交?