我的情况很简单——我有一个父存储库,子目录中嵌套了一个子树。最初,这是两个独立的回购协议(即我没有使用子树拆分工具)。我像这样在机器 #1 上创建了子树:
git subtree add --prefix [my prefix] [repo url] trunk --squash
然后我毫无问题地推送到远程父存储库。然后我检查了 2 号机器上的父仓库(到目前为止也没有问题)。仍然在父 repo 中,我对子树目录中的文件进行了更改,从父项目的根目录提交,并推送到父项目。
此时我还想将更改推送到子树的存储库,所以我尝试运行:
git subtree push --prefix [my prefix] [repo url] trunk
检查提交几分钟后,出现错误:
fatal: assertion failed: test blob = tree -o blob = commit
我在网上找不到任何解释为什么会发生这种情况,有人有任何想法吗?
你可能在你的提交中有两个 repos 的文件,再次尝试干净的提交