我正在检查github中的一些项目,其中一个项目我注意到了这一点:
This branch is 287 commits ahead, 361 commits behind X:Master
这究竟有多可能?
答案 0 :(得分:4)
就像那样:
o ----- ... 285 commits ... -- o <-- master
/
o -- o -- o -- ... 359 commits ... -- o <-- X/master
您在本地存储库中的分支master
上创建了287次提交。无法从X/master
访问这些提交。这就是master
&#34; 287提前提交X/master
&#34; 的原因。
与此同时,其他开发人员在X/master
上创建了361个新提交。由于本地master
和X/master
分歧,因此master
无法访问这些361次提交,这就是为什么master
&#34; 361次提交的原因在X/master
&#34; 。
这是版本控制系统中的正常情况。您可以通过两种方式将master
分支与X/master
同步:
<强>合并强>
执行命令
git checkout master
git merge X/master
这会创建一个新的提交,其中包含master
和X/master
的所有更改,并且有两个父级:master
和X/master
分支的当前提示。< / p>
如果成功,图表如下所示:
+--- old "master"
v
o -- ... 285 commits ... -- o -- o <-- master (the merge commit)
/ /
o -- o -- o -- ... 359 commits ... -- o <-- X/master
<强>底垫强>
执行命令
git checkout master
git rebase X/master
这将移动master
上X/master
但X/master
上的所有提交({1}}分支上的287提交#34;提前#34}提交。提交361位于X/master
,且无法从master
访问。
如果成功,图表将如下所示:
+--- old split point
v
o -- o - ... 360 commits ... - o - ... 286 commits ... - o <-- master
^
+---- X/master
答案 1 :(得分:1)
这很简单:
在此之后,分支通过其更改提前掌握,并在其后面通过已推送到主控的更改。他们需要rebase或merge来合并。