我在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
Run Code Online (Sandbox Code Playgroud)
您master在本地存储库中的分支上创建了287个提交。无法从访问这些提交X/master。这就是为什么master是“未来287个提交X/master”。
同时,其他开发人员在上创建了361个新提交X/master。由于本地master且X/master分散,因此无法从这361个提交中进行访问master,这master就是“ 361后面提交X/master”的原因。
在版本控制系统中,这是正常情况。您可以master通过X/master两种方式与分支同步:
合并
跑:
git checkout master
git merge X/master
Run Code Online (Sandbox Code Playgroud)
这将创建一个新提交,其中包含来自master和的所有更改,X/master并具有两个父级:master和X/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)重新设定
跑:
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)