问题描述
这是我的情况
- 我使用
git subtree add -P dir/ externalrepo master
添加了外部存储库。 - 从那里我在本地创建一个分支(
git checkout -b newbranch
) - 进行了一些更改,我承诺并推动了它们
- 现在我只想使用
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
获取所有历史记录,或者如果这样做不起作用,请尝试删除部分克隆过滤器following these steps。或者,第二个选项来自另一个存储库,一个没有进行部分克隆(仍然可以激活稀疏签出)的存储库尝试执行git subtree push
。