談談對git rebase的理解


gIt rebase 的三種作用

1.拉代碼rebase

2.合並分支rebase

3.處理commit提交記錄

 

1.拉取代碼rebase

正常我們在拉取遠程代碼時使用 git pull

git pull === git fetch + giet merge 是使用fast-forwad模式,如果出現沖突后,解決沖突且重新提交記錄,則會出現分支錯亂的問題,

輸入命令查看log記錄  git log --graph --pretty=oneline --abbrev-commit

強迫症的同學一定會受不了,因此出現git pull --rebase

git pull --rebase === get fetch + git rebase

如上圖,當使用git pull --rebase 出現沖突

 

則先解決沖突后 再

git add .

git rebase --continue

此刻,當前commit提交記錄就變成一條線了。注意之后若重新提交則需要 git push -f  即為強制提交替換遠程commit記錄。

 

2.合並分支rebase

當你接到需求后從master分支切出dev分支,然后dev分支開發完成后需要先切回master分支,git pull --rebase 拉取最新的代碼,再切回dev分支,這時候你需要先合並master的最新代碼,正常git merge 后會出現commit提交錯亂,如下圖

這樣就會讓人感覺強迫症犯了。

因此,我們可以是用git rebase來合並,如上述,不使用git merge master, 使用git rebase master 后記錄如下圖

可以看到,master和dev將基線以后的commit進行了排序,變基的dev分支在前面,合並的master修改commit再后。 最后提交git push -f。 注意需要需要強制提交,因為變基后的dev和遠程的dev commit記錄順序不一致。

 

3.處理commit提交記錄

當我們需要處理commit記錄時, 可以使用git rebase -i對分支記錄操作, 常見的如刪除,合並多個commit

執行git rebase -i head~3, 即前三次提交記錄,如下圖,執行后進入vim編輯器,將對應的commit前面的pick改為drop即為刪除,squash為合並。

當使用git rebase -i修改后發現修改內容有誤,想恢復修改之前的可以 執行 git rebase --abort 來恢復

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM