X前面如何提交分支,Y后面如何提交分支?

Cem*_*mre 2 git github

我在github中检查了一些项目,在其中一个项目中我注意到了这一点:

This branch is 287 commits ahead, 361 commits behind X:Master

这到底怎么可能?

axi*_*iac 5

就像这样:

       o ----- ... 285 commits ... -- o     <-- master
      /
o -- o -- o -- ... 359 commits ... -- o     <-- X/master
Run Code Online (Sandbox Code Playgroud)

master在本地存储库中的分支上创建了287个提交。无法从访问这些提交X/master。这就是为什么master“未来287个提交X/master

同时,其他开发人员在上创建了361个新提交X/master。由于本地masterX/master分散,因此无法从这361个提交中进行访问master,这master就是“ 361后面提交X/master”的原因

在版本控制系统中,这是正常情况。您可以master通过X/master两种方式与分支同步:

  1. 合并

    跑:

    git checkout master
    git merge X/master
    
    Run Code Online (Sandbox Code Playgroud)

    这将创建一个新提交,其中包含来自master和的所有更改,X/master并具有两个父级:masterX/master分支的当前提示。

    如果成功,该图将如下所示:

                                       +--- old "master"  
                                       v
           o -- ... 285 commits ... -- o -- o   <-- master (the merge commit)
          /                                /
    o -- o -- o -- ... 359 commits ... -- o     <-- X/master
    
    Run Code Online (Sandbox Code Playgroud)
  2. 重新设定

    跑:

    git checkout master
    git rebase X/master
    
    Run Code Online (Sandbox Code Playgroud)

    这一切举动是对提交master,但不是X/master在(287个提交是“进取”)X/master分支,是在提交361之后X/master,并没有从入店master

    如果成功,该图将如下所示:

         +--- old split point
         v
    o -- o - ... 360 commits ... - o - ... 286 commits ... - o   <-- master
                                   ^
                                   +---- X/master
    
    Run Code Online (Sandbox Code Playgroud)