git使用總結

    項目通常會有develop、master另個分支develop分支部署在測試環境測試,多個開發工程師把本身的commit都提交到develop分支,交給測試工程師來測試;master分支是上線分支,測試沒問題的develop分支,在須要上線的時候合併到master分支。git

    保持master和develop提交歷史一致,每次develop合併到master的時候不會出現衝突,保證線上的代碼和測試環境環測試完成的代碼一致,避免由於合併代碼引發線上出問題。測試

   有時候須要臨時上線,能夠基於master分支創建hotfix分支,測試後合併到master分支。ip

   hotfix分支和develop分支是並行的,hotfix分支合併到master分支後,須要同時合併到develop分支,保證develop分支和master分支提交歷史一致。開發

hotfix分爲兩種狀況:部署

A:hofix和develop分支沒有修改相同文件,不會出現衝突it

       1)master分支:ast

            a -> b 並行

        2)develop分支項目

            ​a ->b -> c        commit c修改了文件x文件

        3)hotfix分支

            a->b-> c1       commit c1 修改了文件y

        合併操做以下:

        1)master merge hotfix

                master: a->b->c1

        2)   develop rebase master

                develop: a->b->c1->c    該過程當中不會出現衝突(由於沒有修改相同文件)

B:hotFix和develop分支修改相同文件,出現衝突

       1)master分支:

            a -> b 

      2)develop分支

            ​a ->b -> c         commit c修改了文件x

      3)hotfix分支

            a->b-> c1          commit c1 修改了文件x

        合併操做以下:

        1)master merge hotfix

            master: a->b->c

        2) develop rebase master

             develop: a->b->c1->c2    

        該過程當中出現衝突(由於修改了相同文件),須要手動修改衝突,肯定最終x文件的版本。commit c2是在c版本上解決衝突後的版本

按照上述流程修改後,develop合併master不須要解決衝突

tip: merge的時候請包含提交的commit信息,使用下面命令操做,這樣方便查看歷史記錄

        git merge master --log --no-ff

相關文章
相關標籤/搜索