Git 如何合并来自旧提交的分支

Git 如何合并来自旧提交的分支,git,merge,branch,commit,Git,Merge,Branch,Commit,这是一个从未得到完整答案的问题。 因此,我的发展部门有以下情况 一切都很好 更改文件a、b和c 自动测试失败 回滚文件 $ git commit commit 3 $ git checkout 2 $ git branch failed 查找b、修复、测试中的错误 $ git commit commit 4 $ git checkout development $ git merge failed 只有b被合并。a和c不是。我通过实际查看这些文件来确认,并注意到它们是不同的。git diff

这是一个从未得到完整答案的问题。 因此,我的发展部门有以下情况

一切都很好

更改文件a、b和c

自动测试失败

回滚文件

$ git commit
commit 3
$ git checkout 2
$ git branch failed
查找b、修复、测试中的错误

$ git commit
commit 4
$ git checkout development
$ git merge failed
只有b被合并。a和c不是。我通过实际查看这些文件来确认,并注意到它们是不同的。git diff开发失败进一步证明了它们的不同

我需要所有的文件。当我进行git合并时,我希望所有的东西都能显示出来,因为它们基本上是相同的

我可以对文件做一个小小的更改来强制它合并,我可以复制一个失败分支的副本,手动将文件复制到开发中,并以这种方式检查它们,我确信我可以做一些其他事情,只要强迫git将失败作为新的开发分支,但这些都感觉是错误的答案,尤其是当我认为我的真实情况比仅仅三个文件复杂得多时,人类错误的机会是很大的。 如何正确地执行此操作?如何正确地将与此失败分支不同的所有文件合并回开发中


谢谢。

正确的答案是从那里简单地还原还原并合并


在我的特定情况下,其他开发人员已经对恢复的代码进行了更改,我也需要仔细挑选这些代码。

我理解你的意思吗?在提交2开始的合并失败后,您希望a和c与提交2中的相同吗?如果我执行git签出2,然后git分支失败,则不会创建名为failed的分支。我仍然处于一种超然的状态,如果切换回git警告状态的开发,我将失去任何承诺。你确定创建了失败的分支吗?我可能记错了我到底做了什么,我一直在用我的脑袋敲打手册页,试图找出如何做我想做的事情,但最终结果是我有一个分支失败了,那就是提交2,然后我修改了文件b。我想把这个分支,所有三个文件,合并回开发中,其他人也做了更改,但没有对这些特定的文件进行更改。如果您在失败时没有对a和c进行更改,git怎么知道它应该合并a和c?你可以放弃在你失败后对开发所做的所有更改,但你说其他开发人员也做了更改,我怀疑你是否想丢失这些更改。如果你在失败后没有对a和c做任何更改,git怎么知道它应该合并a和c?是的,这就是问题所在。
$ git commit
commit 3
$ git checkout 2
$ git branch failed
$ git commit
commit 4
$ git checkout development
$ git merge failed