最近在公司換了乙個新部門,之前**的提交流程比較混亂,這裡整理一下比較規範的git
開發流程。
$ git checkout -b dev origin/dev
第一步先新建乙個本地的dev
分支,並和遠端的origin/dev
分支關聯起來。後面會一直將這個分支保持和origin/dev
**同步。
$ git checkout -b bug_001
現在假設我有個新的bug需要修改,那麼新建並切換到bug分支bug_001
。在這個分支上進行bug的修復,完成之後執行git add
和git 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 dev
將dev
最新的分支同步到本地,這個過程可能需要手動解決衝突(如果進行了上一步的話,只用解決一次衝突),如果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.讓你...