克隆git re时出错

时间:2012-12-19 15:17:40

标签: git version-control repository git-submodules git-checkout

所以我参与了这个项目,使用git。

有很多源文件和我们引用的一些库。 libs作为子模块(例如BulletPhysics)被放入git中,我们的团队不得更改。

根据墨菲的法律,这种改变发生了,同时提交/推动,似乎没有任何影响......

......直到有些人丢失了他的本地回购并且不得不重新克隆。好吧,所有发生的事情都是实际下载的项目的一部分,但是当涉及到子弹时,所有发生的事情都是

Unable to checkout 'cc1b481c8ec2868595db30303d88bd12bc1bcf2a' in submodule path 'extern/bullet'

我们的主管告诉我们,它已被试图改变子弹的提交/推送操作打破,我们没有权利这样做,而且他不知道如何解决这个问题。

在没有判断他的情况下,有人可以帮我解决这个问题吗? ;)

问候,LDer

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

(网络上的几个来源,合并。随意添加自己的评论。)

首先,转到终端的子模块文件夹。在我的例子中,/ path / to /.../ project / extern / bullet。在那里执行以下命令

cd /path/to/.../project/extern/bullet

使用'git log',找到最后一次有效提交的sha-id。在我的情况下,在“cc1b481c8ec2868595db30303d88bd12bc1bcf2a”之前。你可能猜到,它是“c2720237e96e126dddb37f0496242d3adbf31ab0”。这是应该解决的问题:

git reset --hard c2720237e96e126dddb37f0496242d3adbf31ab0
git submodule init
git submodule update
cd /path/to/.../project
git add extern/bullet
git commit
git push

到目前为止,回购按预期工作。

祝你好运,   LDericher