如何修复' git子模块更新'

时间:2015-07-18 05:07:28

标签: git git-submodules

我有一个名为Root的超级项目和一个名为subB的子模块,我没有写入权限。现在我想在另一台机器上git一个新的分支。但是当运行" git submodule update"时,得到错误:

"致命:引用不是树:b4ec396a0e1da795a5187f7acf90f686c23c6940 无法结账' b4ec396a0e1da795a5187f7acf90f686c23c6940'在子模块路径' subB'"。所以我尝试了各种方法解决问题,但我失败了。谁能为我回答以下问题,谢谢:

  1. 参考< b4ec396a0e1da795a5187f7acf90f686c23c6940'是指子模块subB中的本地提交?我只能通过' git log b4ec396a0e1da795a5187f7acf90f686c23c6940'在子模块目录' subB'中,但在超级项目中,我没有看到同一个命令。
  2. ref表示本地sumodule repo中的提交?因为我没有远程仓库的写权限。所以我肯定只在当地。购买我在另一台机器上更新时出错的原因。远程仓库应该不知道本地提交!
  3. 如何解决问题?

1 个答案:

答案 0 :(得分:0)

这可能意味着提交b4ec396已在subB中完成,但未在origin/subBsubB的上游回购)中推送。
但是,父级回购已录制 gitlink special entry in the index),并被推送到origin/Root

在另一台计算机上,当克隆父代表Root时,它无法签出subB,因为它引用了origin/subB中不存在的SHA1。