Git-git pull与git pull --rebase的区别
本文最后更新于:4 个月前
1 | |
拆解来看这两个命令就是在拉取远端代码后,是合并还是进行变基操作。
假设当前有三个提交A,B,C,并且分支feature都与远程代码同步。

我们在feature上做了一些修改,并产生了E提交,远程也有用户进行了更新到了D提交。

此时我们需要git fetch获取最新的代码,然后git merge解决冲突后重新git add git commit,得到F提交。最后git push即可成功推送,得到如下的关系

而使用git rebase将会创建一个新的提交F,F的文件内容和上面F的一样,但我们将E提交废除,当它不存在(图中用虚线表示)。由于这种删除,避免了菱形的产生,保持提交曲线为直线。

在rebase的过程中,有时也会有冲突,这时Git会停止rebase并让用户去解决冲突,解决完冲突后,用git add添加修改的文件,然后不用执行git commit,直接执行git rebase --continue,这样git会继续apply余下的补丁。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!