• Git分支管理


    分支是Git很重要的一个特性,可以把分支简单理解为一个快照。当初始化仓库时,默认会有一个master分支,如果我在master分支下新建了一个test分支,那么test分支就是master的一个快照

    使用场景

    开发新功能

    开发新功能的流程通常是这样的

    1. 开发一个网站
    2. 为实现某个功能,创建一个分支
    3. 在分支上完成开发工作
    4. 功能开发完毕,并且测试通过后,合并到主分支

    代码表示

    # 从master分支创建pay分支,完成支付功能开发工作
    $ git branch pay
    
    # 功能开发完毕,合并pay分支的代码
    $ git checkout master
    $ git merge pay
    
    # 推送到远端
    $ git push
    
    # pay分支已经没用,可以删除了
    $ git branch -d pay
    

    紧急Bug

    很多时候,可能会有这样的情况:你正在某分支上开发新功能,突然有一个紧急Bug需要修复,工作流程是这样的

    1. 把未开发完成的功能暂存下
    2. 切换到原先已经发布到生产服务器上的分支,假设叫master分支
    3. 创建一个为修复bug的分支,完成修复问题
    4. 测试通过后,回到master分支,把修补分支合并进来,推送到生产线上
    5. 切换到之前实现新需求的分支,继续工作

    代码表示

    # 从master分支创建pay分支,开发支付功能
    $ git branch pay
    
    # 来bug了,但支付还没有开发完成。保存一下现场,等bug修复后回来继续工作
    $ git stash
    
    # 从主分支切出一个issue01分支,修复bug
    $ git checkout master
    $ git checkout -b issue01
    
    # bug修复完成并测试通过,合并issue01分支,推送到远程
    $ git checkout master
    $ git merge issue01
    $ git push
    
    # 恢复现场,继续开发支付功能
    $ git checkout pay
    $ git stash pop
    

    分支管理

    创建分支

    # 创建pay分支
    $ git branch pay
    
    # 切换到pay分支
    $ git checkout pay
    
    # 合二为一
    $ git checkout -b pay
    

    推送分支

    # 把pay分支推送到远端
    $ git push -u origin pay
    

    合并分支

    把pay分支的代码合并到master分支

    $ git checkout master
    $ git merge pay
    

    查看分支

    # 查看本地分支
    $ git branch
    
    # 查看远程分支
    $ git branch -r
    
    # 查看所有分支
    $ git branch -a
    
    # 查看最后一次提交的信息
    $ git branch -v
    $ git branch -r -v
    $ git branch -a -v
    
    # 查看哪些分支合并进了当前分支
    $ git branch --merged
    
    # 查看哪些分支未合并进当前分支
    $ git branch --no-merged
    

    删除分支

    # 删除远程pay分支
    $ git push -d origin pay
    
    # 删除本地pay分支
    $ git branch -d pay
    

    删除分支前要确认分支已经被合并到主分支,否则是无法删除的。如果确实要放弃已经在分支上修改的工作成果,可以使用-D强制删除

    保存现场

    当你正在开发一个功能,功能还没开发完成,突然线上爆了一个Bug需要紧急修复,这时怎么办?功能没完成就直接commit是不合适的,这时候保存现场功能就派上用场了

    在功能分支执行$ git stash命令,保留一下现场,然后你就可以切换到主分支去修复bug了。bug修复后,切换到功能分支,执行$ git stash pop恢复现场,继续之前的工作

  • 相关阅读:
    Lua与C++的一些交互
    图片叠加文字
    VS智能提示消失的解决方法
    VS2008包加载失败的真正解决方法
    WINDOWS下操作注册表 REG_EXPAND_SZ与REG_SZ的区别
    lua支持中文变量名
    SCROLLVIEW设置初始滚动条位置
    WINDOWS XP 自动关机
    C#通过WMI操作远程机器
    [InstallShield]如何在不同的Script文件之间共享全局变量
  • 原文地址:https://www.cnblogs.com/yesyes/p/15375798.html
Copyright © 2020-2023  润新知