Den*_*nis 41 git git-pull git-rebase
有没有之间的差异git rebase upstream/master和git pull --rebase upstream master,如果是这样,是什么?遥控器可以是任何遥控器,不一定是上游遥控器.
Von*_*onC 43
该git pull --rebase会取(git fetch)第一,更新upstream/master提交.
如果您只是在没有首次更新的情况下进行 rebase upstream/master,则不会得到相同的结果.
我在" master分支和' origin/master分歧,如何'分散'分支'中说明它? "
SnakE 在评论中提到的git pull --rebase并不完全正确 git fetch && git rebase origin/master.
看" 做什么" git pull --rebase"做什么? "
(origin/master)
|
A--B--C (master)
\
B'--D (actual origin/master after changing B and force pushing)
Run Code Online (Sandbox Code Playgroud)
是什么git pull --rebase呢,在这种情况下,就是:
git fetch origin
git rebase --onto origin/master B master
Run Code Online (Sandbox Code Playgroud)
这里:
origin/master(B')B是旧的origin/master(在获取更新之前)master 是重播的分支 origin/master这不同于git fetch+ git rebase origin/master,该pull --rebase命令试图找出哪些提交是真正本地的,并且已经在前面的获取来自上游.
为此,它会查看远程跟踪分支的reflog(
origin/master在本例中).此reflog 以"最近的第一个"顺序表示连续git fetch操作的提示origin.对于每个reflog条目(
origin/master@{1},然后...{2}等),它检查该提交是否是当前分支头的祖先master.一找到它,它就会选择它作为rebase的起点(B在上面的例子中).