git checkout抛出致命引用不是树

wlzqhblo  于 2023-08-01  发布在  Git
关注(0)|答案(2)|浏览(260)

我使用capistrano将代码部署到远程机器上,但得到以下错误。我如何摆脱这个问题。

executing locally: "git ls-remote git@github.com:mycompany/foo.git staging"
    command finished in 468ms
  * getting (via checkout) revision df3d0367fd021d83f881f5d7261dba3f891bca22 to /tmp/20130503165924
    executing locally: git clone -q --depth 1 git@github.com:mycompany/foo.git /tmp/20130503165924 && cd /tmp/20130503165924 && git checkout -q -b deploy df3d0367fd021d83f881f5d7261dba3f891bca22
fatal: reference is not a tree: df3d0367fd021d83f881f5d7261dba3f891bca22

字符串

ruarlubt

ruarlubt1#

我也不得不处理一个破碎的仓库。在注解掉Capistrano的浅克隆选项(:git_shallow_clone, 1,它产生--depth 1)之后,部署工作得很好。
有关如何修复此问题的详细说明,请参阅此问题的公认答案:Git submodule head 'reference is not a tree' error

ohtdti5x

ohtdti5x2#

fatal: reference is not a tree: bf52fb66f4b518bfa579f62db632699ddb127e7b

字符串
通常,发生此错误的原因是本地工作区不知道远程工作区中存在哈希。您可以运行git fetch并重新运行checkout命令。
当我试图将我的子模块更新为工作区中最新的提交哈希时,我得到了这个错误。git fetch子模块目录解决了这个问题。

相关问题