git fetch, git pull,git pull --rebase 之间的区别

7,056 阅读1分钟

1、git fetchgit pull 的区别

在执行 git pull 后,代码会自动 merge 到本地的分支中,而 git fetch 会忽略掉这个 merge 操作,因此简单来说:

git pull = git fetch + git merge

2、git pullgit pull --rebase 区别

git pull 命令默认包含了一个 --merge 参数,因此二者的区别其实就是 mergerebase 的区别。

merge

merge 会创建一个新的 commit,如果合并时遇到了冲突,需要解决冲突后重新 commit。 在这里插入图片描述

rebase

在这里插入图片描述 rebase 会将两个分支进行合并,同时合并之前的 commit 历史。如果出现冲突,解决冲突后执行以下命令即可:

git add
git rebase --continue

如果你想要一个干净的,没有 merge commit 的线性历史树,那么你应该选择 git rebase 如果你想保留完整的历史记录,并且想要避免重写 commit history 的风险,你应该选择使用 git merge

引用自:www.jianshu.com/p/f23f72251…