作者:妮子爱笨蛋 | 来源:互联网 | 2022-12-03 20:10
我有一个dev
它已经与分支合并的分支featureA
和featureB
。我将该dev
分支合并到master
并推到远程。后来我确定由于提交错误featureB
而尚未准备好与之合并master
。所以我恢复了dev
->的合并 master
。
git revert -m 1
然后我试图合并featureA
到master
。但是我不能合并。它会说Already up to date
。
我知道莱纳斯·托瓦尔兹(Linus Torvalds)所说的原因,
Linus解释了这种情况:
恢复常规提交只会有效地撤消该提交所做的操作,并且非常简单。但是,还原合并提交也会撤消提交更改的数据,但是对合并所产生的历史记录的影响绝对没有任何作用。
因此,合并仍将存在,并且仍将其视为将两个分支结合在一起,并且将来的合并将把合并视为最后一个共享状态-还原引入的合并的还原将完全不影响此状态。
因此,通过“还原”撤销数据的变化,但是这是非常没有在这个意义上,它不会取消的影响对信息库历史提交的“撤销”。
因此,如果您将“还原”视为“撤消”,那么您将总是会错过这部分还原。是的,它撤消数据,但是不,它不会撤消历史记录。
在这种情况下,只有将其dev
再次合并的解决方案master
是revert the revert commit
。但是我只想合并分支中包含的一个dev
分支,即featureA
如何将分支(featureA
)合并到master
包含在还原的合并分支(dev
)中的主线分支()?