代码之家  ›  专栏  ›  技术社区  ›  Dimitrios K.

当PR重新基于github时,为什么提交会出现分歧?

  •  1
  • Dimitrios K.  · 技术社区  · 7 年前

    我有一个非常简单的git情况,但出于某种原因,我遇到了以下问题。让我们假设以下起点:

                    H
    master (1) - - (2)
    

    我有我的主分支,我想标记它并将其推送到github。我把主人分给了他 rel-0.0.x ,更改上的版本 npm package.json 、提交和标记。

    master (1) - - (2)
    rel-0.0.x        \ - - (3)
                            H & v0.0.x
    

    在github中,一旦审查了PR,就会对其进行重新调整和合并(master中没有其他更改,所以我的假设是,重新调整不应该更改提交的父级)。为什么我最终会有这个新的提交(当然不再标记)?我可以在github中看到,合并的提交散列与我推送的散列不同。我应该合并而不是重设基础吗?我喜欢线性历史,尤其是当它有意义的时候。。。

    master (1) - - (2) - - (3') <-- this is fetched from github
    rel-0.0.x        \ - - (3)
                            v0.0.x
    

    通常我会直接在github上标记,但我想使用 npm公司 version 工具,它会自动转储版本、提交和标记。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Mark Adelsberger    7 年前

    从文档中 https://help.github.com/articles/about-pull-request-merges/

    GitHub上的rebase和merge行为与git rebase略有不同。GitHub上的重基和合并将始终更新提交者信息并创建新的提交SHA,而GitHub之外的git重基不会在重基发生在祖先提交之上时更改提交者信息。有关git rebase的更多信息,请参阅Pro git书籍中的“git rebase”一章。