【发布时间】:2019-02-28 23:48:56
【问题描述】:
我有一个 dev 分支,它已经与分支 featureA 和 featureB 合并。
我将 dev 分支合并到 master 并推送到远程。后来我发现featureB 还没有准备好与master 合并,因为有一个错误的提交。所以我恢复 dev 的合并 --> master。
git revert -m 1 <merge-commit-hash>
然后我尝试将featureA 合并到master。但我不能合并。它会说Already up to date。
正如 Linus Torvalds 所说,我知道原因,
Linus 解释情况:
恢复常规提交只会有效地撤消该提交 做到了,而且相当简单。但也恢复合并提交 撤消提交更改的 data,但它确实如此 合并对历史的影响没有任何影响。
所以合并仍然存在,仍然会被视为加入 两个分支在一起,未来的合并将看到合并为 最后一个共享状态 - 以及恢复合并的恢复带来 in 根本不会影响。
所以“还原”会撤消数据更改,但它不是 “撤消”是指它不会撤消提交对 存储库历史记录。
因此,如果您将“还原”视为“撤消”,那么您将始终 错过这部分回复。是的,它会撤消数据,但不,它不会 撤消历史记录。
在这种情况下,将 dev 再次合并到 master 的唯一解决方案是 revert the revert commit。但我只想合并dev分支中包含的一个分支,即featureA
如何将分支 (featureA) 合并到包含在还原合并分支 (dev) 中的主线分支 (master)?
【问题讨论】:
-
同样的问题,没有任何答案。
标签: git gitlab git-merge git-remote git-revert