我正在检查 github 中的一些项目,在其中一个项目中我注意到了这一点:
This branch is 287 commits ahead, 361 commits behind X:Master
这到底有多大可能?

最佳答案

就像这样:

       o ----- ... 285 commits ... -- o     <-- master
      /
o -- o -- o -- ... 359 commits ... -- o     <-- X/master

您在本地存储库中的分支 master 上创建了 287 个提交。这些提交不能从 X/master 访问。这就是 master 是“287 次提交 X/master”的原因。

与此同时,其他开发人员在 X/master 上创建了 361 个新提交。由于本地 masterX/master 不同,因此无法从 master 访问这 361 次提交,这就是为什么 master 是“X/master 后面的 361 次提交”。

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

    运行:
    git checkout master
    git merge X/master
    

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

    如果成功,图形如下所示:
                                       +--- old "master"
                                       v
           o -- ... 285 commits ... -- o -- o   <-- master (the merge commit)
          /                                /
    o -- o -- o -- ... 359 commits ... -- o     <-- X/master
    
  • rebase

    运行:
    git checkout master
    git rebase X/master
    

    这将移动 master 上所有在 X/master 上但不在 X/master 上的提交(287 个“提前”提交)在 X/master 分支上,在 master 上的提交 361 之后,并且不能从 ojit_code 访问。

    如果成功,图形将如下所示:
         +--- old split point
         v
    o -- o - ... 360 commits ... - o - ... 286 commits ... - o   <-- master
                                   ^
                                   +---- X/master
    
  • 关于git - 一个分支怎么可能既是 X 次提交又是 Y 次提交呢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41492486/

    10-14 13:13