zoukankan      html  css  js  c++  java
  • Git分支管理策略

    通常,合并分支时,如果可能,Git会用"Fast Forward"模式,但是在这种模式下,删除分支后,会丢掉分支信息。

    如果要强制禁用"Fast Forwar"模式,Git就会merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

    下面我们实战一下--no-ff方式的merge:

    首先,任然创建dev分支并切换到dev分支上:

    $ git checkout -b dev
    Switched to a new branch 'dev'

    修改readme.txt文件,添加并提交

    $ cat readme.txt
    master分支内容
    添加dev分支内容
    master分支上的合并测试内容
    分支合并测试

    dev分支--no-ff方式的merge

    $ git add readme.txt

    $ git commit -m "dev commit"
    [dev 4f4f23a] dev commit
    1 file changed, 1 insertion(+)

    切换到master分支上,用no-ff模式合并

    LV@LV-PC MINGW32 /c/gitskill (dev)
    $ git checkout master
    Switched to branch 'master'
    Your branch is ahead of 'origin/master' by 5 commits.
    (use "git push" to publish your local commits)

    LV@LV-PC MINGW32 /c/gitskill (master)
    $ 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看看分支历史:

    LV@LV-PC MINGW32 /c/gitskill (master)
    $ git log --graph --pretty=oneline --abbrev-commit
    * 8e64728 merge with no-ff
    |
    | * 4f4f23a dev commit
    |/
    * f3d8f1e branch merge
    |
    | * cccee34 newbranch first commit
    * | 4bb4c5a master branch merge test
    |/
    * 0d0bbca dev first commit
    * d5aea29 master first commit
    * 023ee21 Initial commit

    分支策略:

    在实际的开发中,我们按照几个基本的原则进行分支管理:

    首先,master分支应该是非常的稳定的,也就是仅仅用来发布新的版本,平时不能在上面干活。

    那在哪里干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到了某个时候,比如要发布一个版本的时候,

    再把dev分支合并到master上,在master分支上发布1.0版本;

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

    Git的分支十分强大,在团队开发中应该充分应用。合并分支时,加上--no-ff参数就可以用普通的模式合并,合并后的历史有分支,能看出来了曾经做过合并,

    而fast forward合并就看不出来曾经做过合并。

  • 相关阅读:
    如何提高MySQL Limit查询的性能
    asp.net cache 缓存
    a标签的target指向iframe
    Entity Framework实例详解
    MySql循环插入数据(定义了存储过程)
    mysql 定义function rand
    [转] Socket心跳包异常检测的C语言实现,服务器与客户端代码案例
    tinyhttpd ------ C 语言实现最简单的 HTTP 服务器
    http通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤
    http请求数据的格式
  • 原文地址:https://www.cnblogs.com/LvLoveYuForever/p/5524004.html
Copyright © 2011-2022 走看看