"解包失败:错误提交失败"但提交存在

时间:2015-05-11 19:14:00

标签: git version-control merge git-merge git-push

经过长时间搜索此特定问题后,我没有找到其他解决方案,但在此处发布了一个问题:

情境:

  1. 两台远程服务器: git.address-a.com git.address-b.com
  2. 一个包含两个遥控器的本地存储库:来源 git.address-a.com remote-b git。 address-b.com
  3. 我每天都会检查某些内容是否被推送到 remote-b
  4. 如果推送了任何内容,我会根据主人创建一个新的本地分支(跟踪 origin / master ),从 remote-b 中获取更改并将其合并到我的新分支(例如 branch-b )。
  5. 如果一切正常并且没有冲突(如果有的话,我会手动修复它们),我只需要结帐回并与 branch-b 合并,所以我将 master 推送到 origin / master
  6. 问题描述:

    这个工作流程运行得很顺利,但出于某种原因,在每日集成的最后一周,git正在向我回复一条消息:

    error: unpack failed: error Missing commit 041460e3edf2f00f75022ce864535ffa2331f1c3
    To https://myuser@git.address-a.com/git/r/project.git
    ! [remote rejected] master -> master (n/a (unpacker error))
    

    此提交(简称:041460)来自两周前,两个遥控器中都存在 。但是,现在,当我从 remote-b 获取并合并 branch-b 的更改时,将其合并到 master 并尝试推送到原点正在显示此错误。

    执行的命令:

    #git checkout -b branch-b
    #git fetch remote-b
    #git merge remote-b/master
    #git checkout master
    #git merge branch-b
    #git push origin master
    

    环境:

    Git in remotes:1.7.1 Git在我的机器上:1.9.1 两个遥控器中的Gitblit 1.6.2

    尝试:

    • 衍合
    • 在之后通过git和rebase通知提交的父级中的分支。
    • 删除本地项目,再次重做所有集成步骤。

2 个答案:

答案 0 :(得分:0)

你试过吗

git push --no-thin origin master 

以及?

答案 1 :(得分:0)

您的本地存储库中可能有一些错误。试试这个git命令来清理不必要的文件并优化本地存储库 :

git gc