git pull 和
git pull --rebase 命令都是从远端拉取代码,更新我们的仓库。
四个区:
git pull 是 git pull --merge的简写。
git pull 与git pull --rebase 的关系如下:
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase
远程库的最新内容拉到本地库,用户在检查了以后决定是否合并到工作区中。git merge B,那就是将分支B中的代码合并到分支A中。工作区中,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
git rebase A就是将B分支上的修改都变基(移到)A分支上工作区中,即:git pull --rebase = git fetch + git rebase,可能会产生冲突手动解决。
通过上面的比较,git pull 与 git pull --rebase的区分实际上就是git merge与git rebase的区分。为了方便区分我们使用两个不同名分支进行讲解。

合并后:

执行的合并命令:
$ git checkout master
$ git merge yang


执行的变基命令:
$ git checkout yang
$ git rebase master
然后再执行如下命令,是master分支指向最新节点
$ git checkout master
$ git merge yang

由此可以看出merge和rebase的区别: