【发布时间】:2015-03-22 15:31:46
【问题描述】:
这与merge branch that was created from old commit to master 相同的问题从未得到完整的答案。
所以我的development 分支出现以下情况
$ git commit
commit 1
一切都好。
更改文件a、b 和c。
$ git commit
commit 2
自动化测试失败
回滚文件
$ 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 development..failed 进一步表明它们是不同的。
我需要所有文件。当我做git merge 时,我希望所有东西都能被传递,因为它们基本上是相同的。
我可以对文件进行微小的更改以强制它合并,我可以复制failed 分支并将文件手动复制到development 并以这种方式检查它们,我确定有我可以通过强制 git 将 failed 作为新的 development 分支来做其他事情,但是这些都感觉是错误的答案,尤其是当我认为我的实际情况比三个文件和人为错误的可能性很大。
如何正确执行此操作?如何正确地将与此failed 分支不同的所有文件合并回development?
谢谢。
【问题讨论】:
-
我理解你的意思吗?您希望
a和c在合并failed(从 commit 2 开始)后与 commit 2 中的相同吗? -
如果我先执行
git checkout 2,然后执行git branch failed,则不会创建名为failed的分支。我仍然处于分离的 HEAD 状态,并且在切换回development作为 git 警告状态时会丢失任何提交。您确定创建了failed分支吗? -
我可能记错了我到底做了什么,我一直在试图弄清楚如何做我想做的事情,但最终结果是我有一个分支“失败”,即“提交 2”,然后我修改了文件“b”。我想将这个分支,所有三个文件合并回开发中(其他人也做了更改,但没有对这些特定文件进行更改)。
-
如果你在
failed上没有对它们进行任何更改,git 应该如何知道它应该合并a和c?您可以放弃在failed分支之后对development所做的所有更改,但您说其他开发人员也进行了更改,我怀疑您是否想丢失这些更改。 -
"如果您在失败时没有对它们进行任何更改,git 应该如何知道它应该合并 a 和 c?"是的,就是这个问题。