當前位置:
首頁 > 知識 > 搞懂merge和rebase的區別

搞懂merge和rebase的區別


點擊上方藍字關注「小鄭搞碼事」,每天都能學到知識,搞懂一個問題!

用過git的可能很多,但是用過rebase這個命令的可能不是很多,因為這個命令有一個很方便的取代命令,我們都非常熟悉,它就是merge,合併分支內容,然而rebase也能起到同樣的作用,今天我們來分析一下兩者的區別。

首先,假設有一個主分支master,然後在新建一個分支dev;主分支中有一個文件1.txt,1.txt內容是a=1。

搞懂merge和rebase的區別


一、merge或者rebase之前準備工作

// 開發文件依然放在桌面上

cd ~/desktop/gitTuT

// 新建一個分支

git branch dev

// 確保在master分支上,更改1.txt的內容a=1;b=2;

// 添加和提交一塊操作

git commit -am "change2 in master"

// 切換到dev分支上

git checkout dev

// 更改1.txt的內容a=1;c=3

// 添加和提交一塊操作

git commit -am "change3 in dev"

// 回到master分支

git checkout master

提交時間:C1 C2 C3

搞懂merge和rebase的區別

以上操作對於接下來的merge和rebase操作是一樣的


二、若是merge操作

git merge dev

// 若有衝突,解決衝突

git commit -am "change4 in merge master" //合併後提交

git log --oneline --graph // 查看提交狀態

搞懂merge和rebase的區別

提交時間:

master:C1 C2 C3 C4

dev:C1 C3


三、若是rebase操作

git rebase dev

// 解決衝突

git add 1.txt // 添加但不是需要commit

git rebase --conbinue

git log --oneline --graph //查看主分支提交順序

提交時間:

master:C1 C3 C2

dev:C1 C3

搞懂merge和rebase的區別


四、有關於兩者的區別

第一:commit提交的時間順序不一樣

第二:正回為第一點,在rebase時候 由於中間插入了C3提交導致C2不在是rebase之前的那個C2(因為reset C2時不在是回到之前的那個文件狀態)

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 小鄭搞碼事 的精彩文章:

純CSS寫一個H5橫豎屏提示功能
前端樣式問題匯總(上)
關於這個樣式屬性justify
實現波浪圖最簡單的方法
如何設計React組件?

TAG:小鄭搞碼事 |