搞懂merge和rebase的區別
點擊上方藍字關注「小鄭搞碼事」,每天都能學到知識,搞懂一個問題!
用過git的可能很多,但是用過rebase這個命令的可能不是很多,因為這個命令有一個很方便的取代命令,我們都非常熟悉,它就是merge,合併分支內容,然而rebase也能起到同樣的作用,今天我們來分析一下兩者的區別。
首先,假設有一個主分支master,然後在新建一個分支dev;主分支中有一個文件1.txt,1.txt內容是a=1。
一、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操作
git merge dev
// 若有衝突,解決衝突
git commit -am "change4 in merge master" //合併後提交
git log --oneline --graph // 查看提交狀態
提交時間:
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
四、有關於兩者的區別
第一:commit提交的時間順序不一樣
第二:正回為第一點,在rebase時候 由於中間插入了C3提交導致C2不在是rebase之前的那個C2(因為reset C2時不在是回到之前的那個文件狀態)
※純CSS寫一個H5橫豎屏提示功能
※前端樣式問題匯總(上)
※關於這個樣式屬性justify
※實現波浪圖最簡單的方法
※如何設計React組件?
TAG:小鄭搞碼事 |