gpt4 book ai didi

git - 无法 checkout git 子模块路径

转载 作者:IT王子 更新时间:2023-10-29 00:56:18 25 4
gpt4 key购买 nike

我在使用 git 子模块时遇到问题。

每当我从上游存储库收到新的子模块引用时,执行 git submodule update 会得到以下结果:

fatal: reference is not a tree: dd208d46ecdd1ac0d2b2594a610fe4c9150fece1
Unable to checkout 'dd208d46ecdd1ac0d2b2594a610fe4c9150fece1' in submodule path 'submodule/path'

重要的是要注意子模块有几个远程,其中上游远程应该用于更新子模块引用树。我猜我的问题就在那里,但我不确定。

我的设置如下:

Git 项目

Remote :

  1. 来源(我的 git 分支)
  2. 上游(项目 repo )

子模块“模块”,有 Remote :

  1. 来源(我的 git 分支)
  2. 上游(项目 repo )

有谁知道是什么导致了我的问题?

最佳答案

当执行 git submodule update 时,git 会尝试 check out 保存在 super 项目中的提交/树(在您的示例中,提交 ID 为 dd208d4...)

我认为你得到错误是因为在子模块中不存在这样的对象。你必须确保它在那里。通常这意味着您必须先从远程获取/pull 它。

可能你必须

git submodule foreach git fetch
git submodule update

或者也许

git fetch --recurse-submodules

假设子模块已配置,以便它可以从远程 origin 获取丢失的提交。最后,必须知道,从哪里可以获取丢失的提交并且您必须获取它。

你可以检查你是否有 dd208d4... 做类似的事情:

cd ./module
git log dd208d46ecdd1ac0d2b2594a610fe4c9150fece1
git cat-file -p dd208d46ecdd1ac0d2b2594a610fe4c9150fece1
git ls-tree dd208d46ecdd1ac0d2b2594a610fe4c9150fece1

造成这种问题的一个可能原因是,从 super 模块发布新提交的人没有从子模块发布必要的提交。他必须先发布子模块的提交。

关于git - 无法 checkout git 子模块路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14768509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com