【发布时间】:2017-09-11 21:52:49
【问题描述】:
我有两个分支,A) 开发和 B) 功能
我在 B 上工作,现在准备将 B 合并到 A 中。A 显然已经完成了很多工作,许多其他功能分支通过拉取请求合并。我拉出 A 的最新负责人并出于测试目的,假设我将 A 合并到 B(注意,我在两个方向上都得到了相同的行为,但我试图找出问题出在哪里)。
我将 A 合并到 B,但在解决合并冲突后出现了很多编译器错误。我注意到 A 中实际上包含的代码只是没有将其传递给 B。这会导致构建失败,并且缺少很多东西(它至少是一个大提交的代码)。
我追踪了我在从 A“合并”到 B 时遇到问题的提交。但这并不是说它没有合并,当我在合并后签出 B 时键入“git log”时确实看到了它。由于某种原因,与提交相关的实际更改会消失。有问题的代码没有合并冲突,而且我确信我在处理 B 时从未接触过该部分,因此可能会发生其他任何事情。
关于“丢失”提交(即使我在分支日志中看到它),我应该怎么做才能恢复实际更改?我会使用差异工具,但我担心这是一个更大问题的症状,并且我不知道的其他代码也可能丢失。
我对 git 还很陌生,所以我有点不确定如何处理这个问题。如果还有其他有用的信息,请告诉我。
到目前为止我所做的尝试:
将 A 合并到 B,提交存在,但提交的代码不存在 将 B 合并到 A,相同代码/提交的相同问题
我尝试过变基,但是分支因许多冲突而被许多提交关闭。所有提交也都在服务器上,所以从我读过的内容来看,这可能是个坏主意。请让我知道我是否应该尝试在某个方向(A->B 或 B->A)进行变基。
【问题讨论】:
-
正如很常见的那样,minimal reproducible example 会有所帮助,但即使没有它,它也只会显示您运行的命令的实际命令行解释器序列(
git checkout br1; git merge br2,以及其他任何内容,例如) 在这里会有所帮助。
标签: git version-control merge