我只是想知道,是否有任何方法可以解决两个git分支的合并提交,而不需要真正合并它们。
假设,我有一个分支“featureMy”;我的同事创建了另一个分支“featureHis”。这两个分支都是在“master”分支上创建的。
然后我的同事创建了一个合并请求,将他的分支“featureHis”合并到master中。当我创建合并请求“featureMy”到master中时,我想确保在合并“featureHis”后它不会与master冲突。
通常情况下,我会将“featureHis”合并到“featureMy”之前。然而,这并不令人满意,因为我有一个额外的合并提交作为“噪音”,我的合并请求将包含来自“featureHis”的更改。
有没有一种方法,让我可以解决合并冲突,而不创建一个合并提交?
亲切的问候
2条答案
按热度按时间vc9ivgsu1#
避免合并提交的一个标准方法是使用rebasing代替合并。考虑以下场景:
字符串
假设
master
中只有这两个分支,那么其中一个将首先与master
合并。假设是你的同事先到了那里。然后,该图将如下所示:型
你同事的提交现在在
master
分支中。现在,如果您使用基于合并的工作流,您将首先将master
合并到您的分支中,然后将您的分支合并回master
。这将导致:型
现在你的分支 * 和 *
master
分支都有丑陋的合并提交。但是,如果你在master
上 rebased 你的分支,你会得到:型
现在你的分支
featureMy
实际上是master
分支的前面。你可以直接在master
上推送你的提交,没有冲突。这将产生下图:型
请注意,任何地方都有 no merge提交。事实上,
featureMy
分支和master
都有 * 相同的 * 线性历史。万岁
git rebase
。7d7tgy0s2#
如果您的合并冲突可以通过完全使用文件的一个版本来解决,那么这里有一个解决方案。
假设你想合并到一个名为
qa
的分支中,而composer.json
和composer.lock
中存在冲突。qa
包含您想要使用的更新版本,而不是您的分支中的版本。字符串