我使用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
字符串
2条答案
按热度按时间ruarlubt1#
我也不得不处理一个破碎的仓库。在注解掉Capistrano的浅克隆选项(
:git_shallow_clone, 1
,它产生--depth 1
)之后,部署工作得很好。有关如何修复此问题的详细说明,请参阅此问题的公认答案:Git submodule head 'reference is not a tree' error
ohtdti5x2#
字符串
通常,发生此错误的原因是本地工作区不知道远程工作区中存在哈希。您可以运行
git fetch
并重新运行checkout
命令。当我试图将我的子模块更新为工作区中最新的提交哈希时,我得到了这个错误。git fetch子模块目录解决了这个问题。