【发布时间】:2016-12-02 16:33:49
【问题描述】:
我在将两个分支合并到另一个分支时遇到了一些问题。
我有两个功能分支,每个分支都在 master 之前提交 1 个。
feature-branch-1 - 1 commit 'alpha' ahead of master
feature-branch-2 - 1 commit 'beta' ahead of master
而且我有一个带有 1 次提交的主分支。
master - 1 commit 'gamma'
我想运行这样的东西。
git checkout master
git merge feature-branch-1 --no-commit
git merge feature-branch-2 --no-commit
最终得到一个包含三个提交的主分支。
master - 3 commit 'gamma', 'alpha', 'beta'
is sue 是第一个合并的作品。然后第二次合并有这个消息。
自动合并进展顺利;在按要求提交之前停止
我怎样才能成功地将这些分支合并在一起?
【问题讨论】:
-
这毫无意义。您的标题说“不提交”,但您明确表示您希望提交之后存在。你是否想要个人提交?如果您希望在合并两个分支后在
master上存在三个提交,每个分支都有一个提交,那么您只需要一个正常的合并。只需执行git merge feature-branch-1; git merge feature-branch-2。这是一个没有额外选项的常规合并,可以在两个分支上快进master。--no-commit选项显然不进行提交,所以如果你想要提交,请不要使用它。 -
@meagar 这不能按预期工作,第一次合并有效,第二次让我手动提交新的提交,这是不受欢迎的。
-
这不是
git merge的行为方式,除非你的第二次提交不能干净地合并,在这种情况下你问错了问题。答案是是git merge branch-1后跟git merge branch-2,两者的行为相同并且都创建提交。 -
@meagar 有什么快速的方法可以将
branch-1合并到master然后将master合并到branch-2并将branch-2合并到`master?都没有特定的合并提交? -
git checkout master; git merge branch-1; git checkout branch-2; git merge master; git checkout master; git merge branch-2?同样,假设这些都是快进合并,您无需担心合并提交或git merge的特殊选项。这是git merge的完全普通的正常用例。我仍然很不清楚你在问什么,或者你为什么认为这里会涉及合并提交。