如何在SourceTree中将develop分支合并到master分支?

37
我已经在 C:\temp\ConsoleApplication1 创建了一个本地Git仓库。然后我点击了 Git Flow 按钮,并按 OK 接受所有默认设置。现在在分支下,我可以看到 develop 和 master。
接下来,我再次点击 Git Flow 来启动一个新的功能,然后进行一些更改,最后完成该功能。
现在我的分支如下所示:
[develop] add line 1
[master] initial commit

问题:我想将develop分支合并到master分支中,应该采用什么正确的方法来实现?

http://i64.tinypic.com/259ye6b.png

我尝试选择develop分支,然后点击Merge按钮。无论我选择哪个提交,都没有任何反应。我还尝试选择主分支,但没有任何区别。

1
我已经找到了我的问题所在。正确的方法是:1> 检出主分支 2> 点击合并 3> 在下拉菜单中选择所有分支。第三步很重要。4> 选择开发分支,然后点击确定。您也可以按相反的顺序执行相同的操作。1> 检出开发分支 2> 点击合并 3> 选择所有分支 4> 点击主分支 5> 点击确定。 - q0987
以下的解决方案对您有用吗?如果是,请标记为已解决。 - dtmland
每个人都可以看到我的回答下面的时间戳和你上面评论的时间戳。你能否将答案标记为正确? - dtmland
5个回答

31
  1. 检出 master
  2. 单击合并按钮,打开合并对话框
  3. 选择提交信息为“add line 1”的提交并单击“确定”

问题描述不是很清楚,但您是否已经尝试过这个步骤了?关键步骤是确保您当前已经检出了 master 分支。


当我使用Git Bash时,通常会将主分支合并到我的开发分支中,解决冲突,然后再将开发分支合并回主分支。这样主分支始终保持干净。 - aj.toulan
4
这个答案在2020年非常有用。 - Chagai Friedlander

29

自从提出这个问题以来,Sourcetree 已经有了很大的改变,但是如果其他人到达这里并不太理解新的 "Merge" 按钮,你需要做的就是检出你想要将更改合并到其中的分支,例如 "master" (在 Sourcetree 中,在 "Branches" 下左侧的分支上双击)。

接下来,只需右键单击您要合并到当前分支的分支(例如 "my-new-branch"),然后从右键菜单中选择 "Merge my-new-branch into master" 。这对我来说非常有帮助,因为我之前使用的是 GitKraken。

输入图像描述


0

正如你所说,你正在使用git flow,将develop合并到master的正确方法是启动一个新的发布分支。

在完成发布后,在发布分支上运行测试,它会合并到develop和master分支,以将所有最新的更改带入这些分支。此外,他们在博客上有一篇指南smarter branching with sourcetree


-1

我认为你需要创建一个本地的“主”分支来跟踪你的远程 origin/master。

在 Git 命令行中:

 git push -u origin master
  1. 首先,您必须在本地开发环境中提交并推送更改到 origin/development 分支。

  2. 将更改从本地开发分支合并到本地主分支(如上所述)。

  3. 然后将更改提交并推送到您的远程主分支。


2
问题是如何在Sourcetree中合并,而不是使用命令行git。 - aled

-1
  1. 在SourceTree中,将您的工作副本切换到本地/分支
  2. 使用SourceTree或git命令提示符合并来自远程/主机的更改
  3. 使用Sourcetree或外部文本编辑器解决冲突。(保存您想要保留的更改,放弃远程冲突)
  4. 提交并推送更改到远程/分支
  5. 在GitHub Web UI上,切换到相关分支,然后创建新的拉取请求(如果所有冲突都未解决,则无法创建拉取请求)
  6. 管理员将收到拉取请求的通知,并接受更改或请求更改。如果没有设置管理员,则拉取请求将自动合并。

2
这个问题只涉及使用Sourcetree,但是这个答案没有提供如何操作的详细信息。 - aled

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接