1

所以我正在使用 git 参与这个项目。

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

根据墨菲定律,这种改变已经发生,伴随着提交/推送,这似乎没有任何效果......

...直到有人丢失了他的本地仓库并不得不重新克隆。好吧,所发生的只是项目的某些部分被实际下载,但是当涉及到项目符号时,所发生的只是

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

我们的主管告诉我们,它已被尝试更改子弹的提交/推送操作破坏,我们无权执行此操作,并且他不知道如何解决此问题。

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

问候, LDer

4

1 回答 1

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

于 2012-12-19T18:39:45.990 回答