【每日一題NO.74】說下git pull和git pull -rebase的區(qū)別


二者區(qū)別
git pull 的作用是:取回遠(yuǎn)程主機(jī)某個(gè)分支的更新,再與本地的指定分支合并。在默認(rèn)模式下,git pull 是 git fetch 后跟 git merge FETCH_HEAD 的縮寫
git pull 使用給定的參數(shù)運(yùn)行 git fetch,并調(diào)用 git merge 將檢索到的分支頭合并到當(dāng)前分支中。
而使用git pull --rebase時(shí),它運(yùn)行 git rebase 而不是 git merge。
二者差異對比如下:
git?pull?=?git?fetch?+?git?merge?FETCH_HEAD?
git?pull?--rebase?=?git?fetch?+?git?rebase
git rebase 與 git merge 的區(qū)別
git merge會直接合并遠(yuǎn)端分支,有沖突時(shí)創(chuàng)建一個(gè)新的 commit 再提交。
git rebase 則是將本地的 commit 跟合并后有沖突的 commit 整合到一起,再提交到遠(yuǎn)端。這樣可以保證 git 提交節(jié)點(diǎn)在一條線上,而不會因?yàn)闆_突 commit 多出一個(gè)不在主流程線上的提交記錄。
推薦
一個(gè)在線交互式學(xué)習(xí)git的網(wǎng)站Learn Git Branching[1]

推薦學(xué)習(xí)資料
[1]學(xué)習(xí)Git的游戲網(wǎng)站: https://learngitbranching.js.org/?locale=zh_CN

所有《每日一題》的 知識大綱索引腦圖 整理在此:https://www.yuque.com/dfe_evernote/interview/everyday
你也可以點(diǎn)擊文末的 “閱讀原文” 快速跳轉(zhuǎn)

END愿你歷盡千帆,歸來仍是少年。
評論
圖片
表情
