如何使用git rebase管理你的開發流程

2021-09-28 13:31:16 字數 1722 閱讀 5102

最近在公司換了乙個新部門,之前**的提交流程比較混亂,這裡整理一下比較規範的git開發流程。

$ git checkout -b dev origin/dev
第一步先新建乙個本地的dev分支,並和遠端的origin/dev分支關聯起來。後面會一直將這個分支保持和origin/dev**同步。

$ git checkout -b bug_001
現在假設我有個新的bug需要修改,那麼新建並切換到bug分支bug_001。在這個分支上進行bug的修復,完成之後執行git addgit commit操作,先將**提交到本地分支。

$ git checkout dev

$ git pull

切換回主分支並執行git pull命令,拉取最新的**,防止在解決bug過程中有人往主分支提交**,導致本地主分支滯後。

$ git checkout bug_001

$ git rebase -i head~2 //合併提交 --- 2表示合併兩個

$ git rebase dev

切換到bug分支後執行git rebase -i操作,可以將本地的多次提交合併為一次,以簡化提交歷史,這步不是必須的,也可以省略掉。本地有多個提交時,如果不進行這一步,在git rebase dev時會多次解決衝突(最壞情況下,每乙個提交都會相應解決乙個衝突)。接著執行git rebase devdev最新的分支同步到本地,這個過程可能需要手動解決衝突(如果進行了上一步的話,只用解決一次衝突),如果git rebase的過程**現了衝突,解決衝突後還需要執行git add,完了接著執行git rebase --continue命令。

$ git checkout dev

$ git merge bug_001

$ git push -u origin dev:dev

接著再切換回主分支,並執行merge操作,然後就可以push到遠端開發分支了。

這麼做看起來比較複雜,但是好處是顯而易見的。

比如說我們在開發的時候經常會遇到**本地提交完成後push**的時候失敗,提示我們的本地**滯後遠端分支,一般我們會選擇git pull操作,但是這麼操作會導致git提交記錄裡面多一次merge記錄,因為git pull操作實際上就等於git fetch操作和git merger操作的結合,用git rebase操作就可以避免這個現象,可以最大限度的保持提交記錄的整潔性。

其次嚴格按照上面的git開發流程還可以保證我們本地分支的靈活度,本地開發清晰並有跡可循。

git rebase使用記錄

git rebase 最常用的操作有兩個 1 變基 本地dev分支修改 commit後發現遠端分支已經有了新的修改,此時需要git pull dev再git push推送到遠端,此時的提交記錄會出現分叉並多一次合併,如果使用git rebase dev會將本地提交的commit放到最新的遠端分支的提...

git rebase 使用詳解

假設你現在基於遠端分支 origin 建立乙個叫 mywork 的分支。現在我們在這個分支做一些修改,然後生成兩個提交 commit vi file.txt git commit vi otherfile.txt git commit 但是與此同時,有些人也在 origin 分支上做了一些修改並且做...

git rebase使用場景

1.當前分支落後拉取後,整理commit,使得提交歷史為直線 git pull git fetch git merge git pull rebase git fetch git rebase 其實 rebase的目的只有兩個 1.讓多個人在同乙個分支開發的提交節點形成一條線,而不是多條線 2.讓你...