【每日一题NO.74】说下git pull和git pull -rebase的区别
二者区别
git pull
的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并。在默认模式下,git pull 是 git fetch
后跟 git merge FETCH_HEAD
的缩写
git pull 使用给定的参数运行 git fetch,并调用 git merge 将检索到的分支头合并到当前分支中。
而使用git pull --rebase
时,它运行 git rebase
而不是 git merge
。
二者差异对比如下:
git pull = git fetch + git merge FETCH_HEAD
git pull --rebase = git fetch + git rebase
git rebase 与 git merge 的区别
git merge
会直接合并远端分支,有冲突时创建一个新的 commit 再提交。
git rebase
则是将本地的 commit 跟合并后有冲突的 commit 整合到一起,再提交到远端。这样可以保证 git 提交节点在一条线上,而不会因为冲突 commit 多出一个不在主流程线上的提交记录。
推荐
一个在线交互式学习git的网站Learn Git Branching[1]
推荐学习资料
[1]学习Git的游戏网站: https://learngitbranching.js.org/?locale=zh_CN
所有《每日一题》的 知识大纲索引脑图 整理在此:https://www.yuque.com/dfe_evernote/interview/everyday
你也可以点击文末的 “阅读原文” 快速跳转
END愿你历尽千帆,归来仍是少年。
评论