zoukankan      html  css  js  c++  java
  • Git的使用---6. 分支管理

    1. 分支介绍

    分支的简单的理解就是分身,就像孙悟空拔出猴毛变出很多跟自己一模一样的猴子,然后每个猴子做自己的事情互不干涉,等到所有猴子做完之后,猴子集合来合并劳动成果,然后悟空就把那些猴子猴孙门统统收回了。Git的分支也是一个杀手锏级别的功能!

    为了和我们的实际工作更加接近,我们讲个世纪的例子,让大家体会一下分支:

    比如:你现在正在a.php里面做新功能的增加,大约写了300行代码,突然,线上运行的代码爆出了一个bug,需要你放下一切手头工作,全力解决这个bug,你去检查后发现,原来是这个a.php,出了点bug,修改的话也就是20来行代码完事。

    这时候问题来了:你从线上直接down下a.php修改的话,这个bug当时处理了,但是等前面的那个300行代码的后续工作做完,再传到线上的时候,就把这次的bug修改又覆盖掉了,bug依然会再次出现。如果你直接在你的开发版本上的a.php中修改的话,难保你新写的这300行代码不出新的bug。这时候咋办?

    这时候,我们的分支概念就起效了,下面我们可以看一下流程:

    image

    2. 创建分支

    git branch 分支名
    

    git branch命令会列出所有分支,当前分支前面会标一个*号

    3. 切换分支

    git checkout 分支名
    

    创建并切换到新分支,可以使用:

    git checkout -b 分支名
    

    4. 合并分支

    git merge命令用于合并指定分支到当前分支,下面是一个例子:先切换到master分支,然后将新分支my合并到master分支

    git checkout master
    git merge my
    

    如果合并时加上--no-ff参数,表示禁用Fast forward模式合并,如:

    git merge --no-ff -m "merge with no-ff" my
    

    合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

    5. 删除分支

    git branch -d 分支名
    

    6. 删除有内容的分支

    git branch -D 分支名
    

    7. 分支管理策略

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

    首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活; 干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本; 你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

    image

  • 相关阅读:
    xcode 常用插件 加快开发速度 --严焕培
    iOS,蓝牙开发!!--By帮雷
    获取加速度数据,陀螺仪数据,磁场数据的两种方式-陈鹏
    简单仿京东"筛选"界面 双导航栏控制器共存 by Nicky.Tsui
    扩展NSDate类实现快捷使用 —— 昉
    如何实现视图圆角效果的三种方法及比较——董鑫
    无意进去UIView随笔闹腾着玩 -by 胡 xu
    简单实现UITableView索引功能(中英文首字母索引)(一) ByH罗
    动画推荐-By胡罗
    [手游项目3]-20-golang向上取整、向下取整和四舍五入
  • 原文地址:https://www.cnblogs.com/forget0909-Angle-Qi/p/9564519.html
Copyright © 2011-2022 走看看