没有合并分支的合并提交历史sourcetree

时间:2014-05-13 07:33:43

标签: git merge commit atlassian-sourcetree

enter image description here

我需要在SourceTree中将功能分支合并到我的主分支中。

每次合并功能分支时,我都会在主分支提交历史记录中看到所有功能分支都提交历史记录。

我想将功能分支合并到我的主分支和主分支中以查看仅添加了一个提交,'与branchName'合并。 commit,列出更改的文件。

我在智能git中有这个选项,可以在SourceTree中完成吗?怎么样?

  • 答:在主分支中完成提交
  • B,C:在test_branch分支上完成提交,显示在主提交历史记录中(这些是我想从主历史记录中删除的那些)
  • D:合并提交(我想保留这个)

1 个答案:

答案 0 :(得分:2)

这意味着合并是一个 fast-forward :它只是将主HEAD移动到功能分支HEAD。

博客文章" Merge or Rebase?" (2012年8月)提到:

  

您可以在SourceTree中关闭快进合并,以便始终根据需要创建合并提交 - 检查' Create a commit' Merge对话框中的选项或在Preferences > Git中全局设置。]

注意:如果您将git-flow与SourceTree一起使用,那么如果可以快进,合并将总是是快进的:请参阅this thread。< / p>

OP添加的屏幕截图显示非快进合并,其中包含:

  • 主历史记录中的合并提交
  • 在功能分支中完成提交

所以A-D位于master,而B-C保留在feature分支中:您不必去除&#34;删除&#34;来自B-C历史记录的master current branch master)只有A-Dfeature提交仅作为上下文可见,以解释合并提交D的来源。


注意:这个(合并提交)在GitHub中用两个父项表示,这意味着包括合并分支的最新提交:它是一个&#34;特征&#34;来自GitHub,不是master历史的准确表示。

参见例如commits in the master branch of the Git repo itself:每个合并提交后跟一个来自合并分支的提交。

在第二个屏幕截图的情况下,GitHub显示来自合并分支的提交,但这些提交不是主要历史记录的一部分(git log master不会列出它们)。
这是GitHub的一个功能,而不是master日志的精确视图。

注意:这些合并的提交由GitHub根据其日期显示 如果它们是最近的,您可以在合并提交下看到它们,如果它们较旧,您可以在master分支的提交历史列表中进一步查看它们。


OP Asaf Maoz添加in the comments

  

当我使用智能git时,我有一个合并分支的选项,只能看到我的主分支中的一个提交(类似于链接中的提交) - 合并提交,

这似乎在ST中尚未得到支持(见the ST forum) 即使显示当前分支的名称还没有(SRCTREE-1925

  

我没有在我的github帐户中更改任何内容,因此它必须在ST中。也许这个选项在ST

中不存在

是:每个工具都选择了git log的图形显示。