合并代碼還在用 git merge 嗎?不妨試試 git rebase
點擊下方“IT牧場”,選擇“設為星標”

git merge 和 git rebase 目的都是將一個分支的 commit 合并到到另外一個分支中去,但兩者有一定區(qū)別。
git merge






如果此時我push本地的提交到遠程,就會被拒絕,因為遠程和本地已經各自有commit了,我們常規(guī)的做法是git pull一下,在本地解決沖突,然后繼續(xù)push,本質上git pull = git fetch + git merge。
產生沖突:


處理沖突:

重新走add commit 然后push,可以看到必須將合并當作一個新的commit:

git rebase
如果我們此時采用git pull --rebase,也就是=git fetch + git rebase。




git rebase


總結
merge 是一個合并操作,會將兩個分支的修改合并在一起,默認操作的情況下會提交合并中修改的內容。 merge 的提交歷史記錄了實際發(fā)生過什么,關注點在真實的提交歷史上面。 rebase 并沒有進行合并操作,只是提取了當前分支的修改,將其復制在了目標分支的最新提交后面。 rebase 操作會丟棄當前分支已提交的 commit,故不要在已經 push 到遠程,和其他人正在協作開發(fā)的分支上執(zhí)行 rebase 操作。 merge 與 rebase 都是很好的分支合并命令,沒有好壞之分,使用哪一個應由團隊的實際開發(fā)需求及場景決定。 如果比較關注commit時間的話,還是用git merge,rebase會打亂時間線是不可避免的。
干貨分享
最近將個人學習筆記整理成冊,使用PDF分享。關注我,回復如下代碼,即可獲得百度盤地址,無套路領??!
?001:《Java并發(fā)與高并發(fā)解決方案》學習筆記;?002:《深入JVM內核——原理、診斷與優(yōu)化》學習筆記;?003:《Java面試寶典》?004:《Docker開源書》?005:《Kubernetes開源書》?006:《DDD速成(領域驅動設計速成)》?007:全部?008:加技術群討論
加個關注不迷路
喜歡就點個"在看"唄^_^
評論
圖片
表情
