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获取所有历史记录,或者如果这样做不起作用,请尝试删除部分克隆过滤器following these steps。或者,第二个选项来自另一个存储库,一个没有进行部分克隆(仍然可以激活稀疏签出)的存储库尝试执行git subtree push

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...