【发布时间】:2015-07-22 10:31:45
【问题描述】:
经过长时间搜索此特定问题后,我没有找到其他解决方案,但在这里发布了一个问题:
场景:
- 两个远程服务器:git.address-a.com 和 git.address-b.com
- 一个具有两个远程的本地存储库:origin 到 git.address-a.com 和 remote-b 到 git。地址-b.com
- 每天,我都会检查是否有东西被推送到 remote-b。
- 如果推送了任何内容,我会基于 master 创建一个新的本地分支(跟踪 origin/master),从 remote-b 获取更改并将其合并到我的新分支(例如branch-b)。
- 如果一切正常并且没有冲突(如果存在一些问题,我会手动修复它们),我只需返回 master 并与 branch-b 合并,所以我将 master 推送到 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-b 到 branch-b 的更改时,将其合并到 master 并尝试推送到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