我在裸仓库中遇到了一个奇怪的子模块问题。我说明了我的所作所为。
我有一个包含4个模块的仓库。它看起来像这样 - * Superepo(顶级回购) - 我在此回购中添加了以下子模块: mod_1,mod_2,mod_3和mod_4(内部子模块)。 之后我创建了一个来自这个Superepo的裸仓库并称之为superepo.git
现在我使用这个裸仓库来分享不同的人。
我将裸仓库以及所有子模块克隆到名为〜/ clone的目录中。 (git clone --recursive~ / Superepo.git clone)。 我在其中一个克隆的子模块(mod_1和mod_2)中修改了一些东西。我将这些更改提交给了各自的子模块。我还对superepo“克隆”进行了修改。 (〜/克隆)
然后我使用“git push~ / superepo”将更改推送到裸体超级本身。
现在有人试图克隆裸仓库。但是,他收到如下错误 - >
致命:引用不是树xyz(xyz = mod1提交的sh1)
无法在子模块路径mod_1中签出xyz。
我有点无能为力。我对裸机还是超级模块做错了吗?
答案 0 :(得分:2)
您应该将在子模块中执行的更改推送到子模块的原始仓库。到目前为止,你在子模块中进行了更新并更新了封闭的repo以查看该更新,但是对于新的克隆,它将不知道该更新,因为你还没有将它推送到子模块repo,这将是什么克隆时看到。