Git子树推送返回远程解包失败



这是我的情况

  1. 我使用git subtree add -P dir/ externalrepo master添加了一个外部回购
  2. 从那里我在本地创建了一个分支(git checkout -b newbranch(
  3. 做了一些改变,我承诺并推动它们
  4. 现在我只想用git subtree push -P dir/ externalrepo master将这些更改添加到外部回购中,但这就是结果
git push using:  externalrepo master
Enumerating objects: 24, done.
fatal: remote error: want 585cc138094f5003142f0cb5a40f0f56ecd1facf not valid
error: remote unpack failed: eof before pack header was fully read
To github.com:user/externalrepo.git
! [remote rejected]   88c2aa24aea0bf7d7942209f31215b003cdf5e67 -> master (failed)
error: failed to push some refs to 'github.com:user/externalrepo.git'

我不知道如何将更改添加到外部回购

问题与部分克隆有关。我猜git subtree push检查了所有的历史记录,并且考虑到它是部分克隆,所以整个历史记录不可用。解决方案是使用git pull --unshallow获取所有历史记录,或者如果不起作用,请按照以下步骤删除部分克隆筛选器。或者,第二个选项来自不同的存储库,一个没有部分克隆的存储库(它仍然可以激活稀疏签出(尝试执行git subtree push

最新更新