如何将一个分支的所有内容合并到另一个分支?

6
我对git的世界以及Atlassian和SourceTree都很陌生,所以我对此非常基础。我想要实现的是:假设我有一个名为master的分支,我在其中开发我的应用程序并修复所有新功能和错误,另一个分支称为release,我想要做的是将master分支的所有内容合并到release分支中。
截至目前为止,我所做的事情如下:
1. 在SourceTree左侧的“分支”视图上选择“master”分支 2. 点击SourceTree标题栏上的“合并”按钮,然后点击“确定” 3. 点击SourceTree标题栏上的“发送”按钮
第3步之后,什么都没有发生,在我的BitBucket存储库中没有看到任何发布分支,实际上我只在SourceTree上创建了这个分支。请问我做错了什么吗?
谢谢。
2个回答

14

听起来好像你没有将正确的(或全部)分支推送到BitBucket。这是一个完成示例:

假设您有一个包含两个分支(master和release)的存储库。您在主分支上进行开发,并仅在发布分支上进行版本发布。这将看起来像这样: SourceTree - merge branches 当您想将主分支合并到发布分支中时,您需要检出发布分支(右键单击它并选择“Checkout release…”)。然后右键单击要合并到发布分支(master)的分支,然后选择“将主分支合并到当前分支”。结果如下所示: SourceTree - master branch merged into release branch 现在您必须将更改推送到BitBucket。单击工具栏中的“Push”按钮。以下对话框将弹出: SourceTree - pushing changes dialog 现在,您必须选择要推送的分支。如果您不推送分支,则不会显示在BitBucket上。在这种情况下,我希望我的两个分支都在那里,所以我会勾选“Push?”复选框。在Branches页面上,BitBucket现在看起来像这样: BitBucket - Branches page 您还可以在SourceTree的远程下拉菜单下看到远程分支。

你最可能做错的事情是没有将发布分支推送到BitBucket。


谢谢你的非常清晰的解释 :) 你是对的,我在BitBucket上推送了新分支,现在正在工作,但我有一个问题:当我点击Bitbucket左侧面板上可用的“分支”选项卡时,分支窗口将被打开,我看到过滤器“Active”和“Merged”。只有当我点击“Merged”时,我才能看到release分支,那么“Active”是什么意思?为什么release分支只在“Merged”上可用,而不在“Active”上可用?再次感谢。 - Steven
@johnn 当发布分支领先于主分支时,您将在Active筛选器中看到发布分支。在我的第二张图片中,您可以看到发布分支领先于主分支一个提交。当它不再领先时,您可以在Merged筛选器中找到它。如果您在Merged下看到它,则可能已将发布分支合并到主分支中,而不是相反。例如像这样。在图片中执行合并后,发布分支被移动到Merged筛选器中。 - Mika Sundland
好的,我需要练习一下这些东西,你是在哪里学到的呢?你使用了 SourceTree 的文档还是有针对初学者的指南?谢谢。 - Steven
@johnn 我在工作和业余项目中都使用Git和SourceTree。SourceTree只是Git的图形界面,因此遵循任何Git教程都应该可以。你只需要按按钮而不是输入命令。原则是相同的。一开始,只需要能够提交、推送、拉取和分支即可。其他任何东西在需要时都可以轻松地通过谷歌搜索。 - Mika Sundland

1

请按照以下步骤进行操作:

将一个分支合并到另一个分支

Branch B is new branch and we want want branch A code in B
  1. 选择A取出拉取以保持更新。
  2. 选择B选择合并,从日志合并。
  3. 在弹出下拉菜单中选择第一列中的A以获取最新提交。
  4. 如果没有冲突复选框被选中,则立即提交合并,选择确定
  5. 在编辑器中解决xcproject冲突。>> <<

您在B中有A个更改


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