• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Git教程
    Git標簽管理
    Git分支
    Git操作
    Git應用
    GitHub應用
    IDEA對于Git&GitHub的支持
    Git與GitHub使用注意事項

    Git分支管理策略

     

     

    通常,合并分支時,如果可能,Git會用Fast forward模式,但這種模式下,刪除分支后,會丟掉分支信息。

     

    如果要強制禁用Fast forward模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就可以看出分支信息。

     

    下面我們實戰一下--no-ff方式的git merge:

     

    首先,仍然創建并切換dev分支:

     

    $ git switch -c dev
    Switched to a new branch 'dev'

     

    修改readme.txt文件,并提交一個新的commit:

     

    $ git add readme.txt 
    $ git commit -m "add merge"
    [dev f52c633] add merge
     1 file changed, 1 insertion(+)

     

    現在,我們切換回master:

     

    $ git switch master
    Switched to branch 'master'

     

    準備合并dev分支,請注意--no-ff參數,表示禁用Fast forward:

     

    $ git merge --no-ff -m "merge with no-ff" dev
    Merge made by the 'recursive' strategy.
     readme.txt | 1 +
     1 file changed, 1 insertion(+)

     

    因為本次合并要創建一個新的commit,所以加上-m參數,把commit描述寫進去。

     

    合并后,我們用git log看看分支歷史:

     

    $ git log --graph --pretty=oneline --abbrev-commit
    *   e1e9c68 (HEAD -> master) merge with no-ff
    |\  
    | * f52c633 (dev) add merge
    |/  
    *   cf810e4 conflict fixed
    ...

     

    可以看到,不使用Fast forward模式,merge后就像這樣:

     

     

     

    分支策略

     

    在實際開發中,我們應該按照幾個基本原則進行分支管理:

     

    首先,master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面干活;

     

    那在哪干活呢?干活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本發布時,再把dev分支合并到master上,在master分支發布1.0版本;

     

    你和你的小伙伴們每個人都在dev分支上干活,每個人都有自己的分支,時不時地往dev分支上合并就可以了。

     

    所以,團隊合作的分支看起來就像這樣:

     

     

     

    小結

     

    Git分支十分強大,在團隊開發中應該充分應用。

     

    合并分支時,加上--no-ff參數就可以用普通模式合并,合并后的歷史有分支,能看出來曾經做過合并,而fast forward合并就看不出來曾經做過合并。

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏