【问题标题】:"unpack failed: error Missing commit" but commit exists“解包失败:错误缺少提交”但提交存在
【发布时间】:2015-07-22 10:31:45
【问题描述】:

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

场景:

  1. 两个远程服务器:git.address-a.comgit.address-b.com
  2. 一个具有两个远程的本地存储库:origingit.address-a.comremote-bgit。地址-b.com
  3. 每天,我都会检查是否有东西被推送到 remote-b
  4. 如果推送了任何内容,我会基于 master 创建一个新的本地分支(跟踪 origin/master),从 remote-b 获取更改并将其合并到我的新分支(例如branch-b)。
  5. 如果一切正常并且没有冲突(如果存在一些问题,我会手动修复它们),我只需返回 ma​​ster 并与 branch-b 合并,所以我将 ma​​ster 推送到 origin/master

问题描述:

这个工作流程运行得非常好,但出于某种原因,在上周的日常集成中,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-bbranch-b 的更改时,将其合并到 ma​​ster 并尝试推送到origin正在显示此错误。

执行的命令:

#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 遥控器:1.7.1 我机器上的 Git:1.9.1 两个遥控器中的 Gitblit 1.6.2

试过了:

  • 变基
  • 在 git 通知的提交的父级中分支并在此之后变基。
  • 删除本地项目,重新执行所有集成步骤。

【问题讨论】:

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


    【解决方案1】:

    你试过了吗

    git push --no-thin origin master 
    

    还有吗?

    【讨论】:

    • 遗憾的是,我们的 devops 环境现在已经改变了需求,而这种情况也发生了变化。现在不可能在相同的条件下用相同的服务器再次进行测试。
    【解决方案2】:

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

    git gc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-12
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 2016-10-03
      • 1970-01-01
      相关资源
      最近更新 更多