1、git fetch 和 git pull 的区别
在执行 git pull 后,代码会自动 merge 到本地的分支中,而 git fetch 会忽略掉这个 merge 操作,因此简单来说:
git pull = git fetch + git merge
2、git pull 和 git pull --rebase 区别
git pull 命令默认包含了一个 --merge 参数,因此二者的区别其实就是 merge 和 rebase 的区别。
merge
merge 会创建一个新的 commit,如果合并时遇到了冲突,需要解决冲突后重新 commit。
rebase
rebase 会将两个分支进行合并,同时合并之前的 commit 历史。如果出现冲突,解决冲突后执行以下命令即可:
git add
git rebase --continue
如果你想要一个干净的,没有 merge commit 的线性历史树,那么你应该选择 git rebase 如果你想保留完整的历史记录,并且想要避免重写 commit history 的风险,你应该选择使用 git merge