zoukankan      html  css  js  c++  java
  • 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恢复现场,继续之前的工作

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 数的统计
    Java实现 蓝桥杯VIP 算法训练 和为T
    Java实现 蓝桥杯VIP 算法训练 友好数
    Java实现 蓝桥杯VIP 算法训练 连续正整数的和
    Java实现 蓝桥杯VIP 算法训练 寂寞的数
    Java实现 蓝桥杯VIP 算法训练 学做菜
    Java实现 蓝桥杯VIP 算法训练 暗恋
    Java实现 蓝桥杯VIP 算法训练 暗恋
    测试鼠标是否在窗口内,以及测试鼠标是否在窗口停留
    RichEdit 各个版本介绍
  • 原文地址:https://www.cnblogs.com/yesyes/p/15375798.html
Copyright © 2011-2022 走看看