所以我参与了这个项目,使用git。
有很多源文件和我们引用的一些库。 libs作为子模块(例如BulletPhysics)被放入git中,我们的团队不得更改。
根据墨菲的法律,这种改变发生了,同时提交/推动,似乎没有任何影响......
......直到有些人丢失了他的本地回购并且不得不重新克隆。好吧,所有发生的事情都是实际下载的项目的一部分,但是当涉及到子弹时,所有发生的事情都是
Unable to checkout 'cc1b481c8ec2868595db30303d88bd12bc1bcf2a' in submodule path 'extern/bullet'
我们的主管告诉我们,它已被试图改变子弹的提交/推送操作打破,我们没有权利这样做,而且他不知道如何解决这个问题。
在没有判断他的情况下,有人可以帮我解决这个问题吗? ;)
问候,LDer
答案 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