【问题标题】:Does Github.com have to create a merge commit when you merge from a fork ?当您从 fork 合并时,Github.com 是否必须创建合并提交?
【发布时间】:2013-11-14 02:56:32
【问题描述】:

我克隆了主人并开始做我的工作。由于权限,我将分支推送到我的 fork 。然后我向我的主人发送了一个拉取请求,并且有权限的人进行了合并。 我注意到 Github.com 创建了一个合并提交快照,在我看来这只是整个更改的差异,实际上这不是必需的,但在某种意义上很有帮助,我可以查看合并提交以查看整个差异。我可以看到与我自己的分支相同的 sha - 因此看起来合并是一个额外的提交,它可能不是 nexeccary,因为它是一个快进?

master - a
myfork(computer) - a->b->c
myfork(github) - a->b->c

Pull request myfork - master(它说我可以自动合并)显示整个差异,然后当我合并它时,它显示为 master - a->b->c-d 。 d 是一个合并提交,我认为它不是真正需要的,因为它是一个快进?有人可以解释为什么会这样吗?我认为,如果我在 master 已经继续的情况下 rebase master ,这也是同样的情况,但这并没有发生。合并的时候大师还在。

【问题讨论】:

    标签: git version-control github merge


    【解决方案1】:

    在这种情况下确实不需要合并提交,但无论如何创建一个也不是错误。命令行上的git merge 支持--no-ff option,即使可以进行快进,也会避免快进合并。那个开关可能是 GitHub 使用的。

    就使最新提交具有正确代码而言,额外的合并提交是多余的,它确实会稍微混淆历史记录。但它确实具有添加有关合并的额外元数据的优势——它包含合并的日期,并使其在历史上更明确地表明其他人的代码被合并到分支中。 GitHub 可能权衡了这些优点和缺点,并认为额外的提交是一个明智的默认设置。 This question 有更多关于快进何时合适和不合适的讨论。

    【讨论】:

    • 靶心!谢谢 。那很有意思 。看起来这是为了使审阅者能够在一页中查看整个差异,以便他可以快速查看整个更改并合并....所有提交的完整差异有时实际上很有帮助...还可以了解原因的链接FF/没有 FF 问题......为那个链接干杯!
    猜你喜欢
    • 2016-10-10
    • 1970-01-01
    • 2017-07-21
    • 2016-04-19
    • 2011-04-18
    • 2013-09-21
    • 2015-03-22
    • 2022-08-14
    • 2015-08-23
    相关资源
    最近更新 更多