git pull remote branch V / S git merge remote / branch V / S git rebase remote / branch

时间:2018-05-08 09:39:22

标签: git repository git-merge git-rebase git-pull

考虑我的fork repo与远程origin映射,父repo映射到upstream

似乎,以下所有3个命令都可用于保留master的{​​{1}}分支,与origin的{​​{1}}分支保持同步。

master

请帮助我理解这三个命令之间是否存在任何差异。

1 个答案:

答案 0 :(得分:1)

合并和拉取的输出是相同的,因为合并分支的更改应用于当前分支中的当前提交之上。

拉/合并之前

  A---B---C master on origin
 /
D---E---F---G master

  A---B---C origin/master
 /         \
D---E---F---G---H master

rebase的输出与拉动相反。从当前分支创建的所有新提交都被搁置。应用远程分支的提交,然后应用本地提交。所以相比拉动本地提交是在远程提交结束时。

     A---B---C topic
     /
D---E---F---G master

在rebase命令之后

              A'--B'--C' topic
             /
D---E---F---G master

来源 - https://git-scm.com/docs/git-rebase