git fatal:对象错误:unshallow <SHA-1>

Tom*_*ale 9 git git-clone shallow-clone

我正在尝试取消浅层存储库:

% /bin/git clone --shallow-since='3 years' 'https://github.com/RobertAudi/zsh-hooks'
Cloning into 'zsh-hooks'...
remote: Enumerating objects: 17, done.
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 17 (delta 6), reused 12 (delta 4), pack-reused 0
Unpacking objects: 100% (17/17), 5.29 KiB | 1.76 MiB/s, done.
% cd zsh-hooks && git remote -v
origin  https://github.com/RobertAudi/zsh-hooks (fetch)
origin  ssh://github.com/RobertAudi/zsh-hooks (push)
% git fetch --unshallow origin
fatal: error in object: unshallow 9301f4e3a16df8e7cf8f37b5b93a7b925d8c8bee
fatal: the remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

我也尝试过将原点更改httpsgitssh,但没有任何乐趣。

环境:

git config http.postBuffer 524288000
Run Code Online (Sandbox Code Playgroud)

没有效果。

我的本地存储库中只有 5 次提交,尝试增加深度也失败了:

% git fetch --depth=10
fatal: error in object: unshallow 9301f4e3a16df8e7cf8f37b5b93a7b925d8c8bee
Run Code Online (Sandbox Code Playgroud)

进一步的调试信息:

% GIT_TRACE_PACKET=1 GIT_TRACE=1 GIT_CURL_VERBOSE=1 /bin/git fetch --depth=10
12:35:07.106657 git.c:444               trace: built-in: git fetch --depth=10
12:35:07.212298 pkt-line.c:80           packet:        fetch> git-upload-pack /RobertAudi/zsh-hooks\0host=github.com\0
12:35:07.802015 pkt-line.c:80           packet:        fetch< 2a9f56433c86b332df367f6a350026e1e91035a6 HEAD\0multi_ack thin-pack side-band side-band-64k ofs-delta shallow deepen-since deepen-not deepen-relative no-progress include-tag multi_ack_detailed allow-tip-sha1-in-want allow-reachable-sha1-in-want symref=HEAD:refs/heads/master filter agent=git/github-g8735eb3c5505
12:35:07.803152 pkt-line.c:80           packet:        fetch< 75e97419cf96200cfcc4c186611f645158385dd2 refs/heads/installation-instructions
12:35:07.803162 pkt-line.c:80           packet:        fetch< 2a9f56433c86b332df367f6a350026e1e91035a6 refs/heads/master
12:35:07.803166 pkt-line.c:80           packet:        fetch< 0000
12:35:07.811717 pkt-line.c:80           packet:        fetch> want 2a9f56433c86b332df367f6a350026e1e91035a6 multi_ack_detailed side-band-64k thin-pack include-tag ofs-delta deepen-since deepen-not agent=git/2.28.0
12:35:07.811740 pkt-line.c:80           packet:        fetch> shallow 9301f4e3a16df8e7cf8f37b5b93a7b925d8c8bee
12:35:07.811747 pkt-line.c:80           packet:        fetch> shallow f59eed49cafc1b986a593a153714d3896c194a65
12:35:07.811753 pkt-line.c:80           packet:        fetch> deepen 10
12:35:07.811758 pkt-line.c:80           packet:        fetch> 0000
12:35:08.108127 pkt-line.c:80           packet:        fetch< shallow c047fc14746739e9f52cd20a71fc60cf31f63a42
12:35:08.108208 pkt-line.c:80           packet:        fetch< unshallow 9301f4e3a16df8e7cf8f37b5b93a7b925d8c8bee
fatal: error in object: unshallow 9301f4e3a16df8e7cf8f37b5b93a7b925d8c8bee
Run Code Online (Sandbox Code Playgroud)

我在用着:

% /bin/git --version
git version 2.28.0
Run Code Online (Sandbox Code Playgroud)

LeG*_*GEC 11

FWIW:我可以在克隆该存储库时重现您的问题。

git repack -aldf在我的克隆上运行了一次(在您链接的问题中提到),它成为了我的下一个git fetch --unshallow工作。

稍微研究一下:git repack -d足以解决问题。

我不明白我运行的命令背后的所有含义git repack;我认为你可以将这个确切的问题提交到 git 的邮件列表。

  • 这显然是 Git 中的一个错误,但这个错误到底在哪里,却更加神秘。再现器和跟踪数据将很有用。 (2认同)