• 【Git实战】协同开发,如何紧急修复线上bug?


    Go可以不学,但是Git必须会!

    使用场景

    1. 团队协同开发时,生产环境出现bug,需要紧急修复。
    2. 每位同学在本地开发,对应本地的dev分支,本地测试通过后提交到测试环境的dev分支。
    3. 测试环境有其他同学提交的代码,正在测试中,无法提交到生产环境的master分支。
    4. 以上情况导致我们不能在本地基于dev分支修复bug,因为会和其他同学提交的测试中的代码“撞车”,导致无法及时提及到生产环境。
    5. 这个时候如何正确使用Git管理代码呢?

    解决思路

    1. 首先我们从master拉取最新代码到本次创建临时分支
    2. 在本地紧急修复代码,进行测试,测试无误后merge热修复代码到dev分支
    3. 本地merge测试分支和本地热修复分支的代码,有冲突解决冲突,提交代码(保证紧急更新的代码能及时被其他同学拉取到)
    4. 测试环境进行测试
    5. 测试无误后切换到master分支,merge紧急修复分支代码!(注意:是紧急修复分支的代码,不是测试dev分支代码,因为我们无法保证dev分支有无其他同学提交的未测试通过的代码!!!)
    6. 推送master分支merge热修复的代码到远程仓库,发布项目
    7. 如果需要的话添加tag标签,标记一下操作。
    8. 删除热修复分支,切换到dev分支,继续自己的本地开发。

    操作流程

    1. 切换到master分支,拉取最新代码
    git checkout master
    
    git pull
    
    • 1
    • 2
    • 3
    1. 基于master分支创建热修复分支
    git branch master_hotfix
    
    • 1
    1. 切换到热修复分支
    git checkout master_hotfix
    
    • 1
    1. 本地开发,修复bug,测试
    coding
    
    • 1
    1. 本地测试通过后,merge热修复代码到dev分支
    git checkout dev
    
    git merge master_hotfix
    
    • 1
    • 2
    • 3
    1. 解决冲突,提交代码,测试环境进行测试
    git push origin dev
    
    • 1
    1. 测试通过后,merge热修复代码到master分支
    git checkout master
    
    git merge master_hotfix
    
    • 1
    • 2
    • 3
    1. 推送master代码到远程仓库
    git push origin master
    
    • 1
    1. 添加tag标记:git tag -a 版本号 -m “注释”
    git tag -a 1.1.0 -m "紧急修复xxbug"
    
    • 1
    1. 推送tag
    git push --tag
    
    • 1
    1. 删除热修复分支
    git branch -d master_hotfix
    
    • 1
    1. 切换到开发分支,进行本地开发
    git checkout dev
    
    • 1

    附录:Git使用的小技巧

    Git命令别名

    1. 首先找到Git的配置文件,比如Mac系统下
    vim ~/.gitconfig
    
    • 1
    1. 在配置文件中根据自己的使用习惯添加[alias],比如:
    [alias]
    
    br = branch
    
    ci = commit
    
    cl = clone
    
    co = checkout
    
    cp = cherry-pick
    
    cfg = clone
    
    df = diff
    
    fh = fetch
    
    lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
    
    mg = merge
    
    pl = pull
    
    plr = pull --rebase
    
    rb = rebase
    
    ph = push
    
    rmt = remote
    
    rst = reset
    
    sh = stash
    
    st = status
    
    sts = status -s
    
    sbm = submodule
    
    sw = show
    
    swf = "show --name-status"
    
    delb = "push origin --delete"
    
    delt = "push origin :"
    
    mb = merge-base
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    1. 这样我们就能使用简化后的命令操作git了,进一步提高了效率。
      比如:
    git commit -m'注释'
    
    • 1

    可以简化为:

    git ci -m'注释'
    
    • 1

    总结

    团队协作是职业生涯中必须面对的问题,Git为我们代码的协作管理提供了强大的工具。
    熟悉Git操作,拥抱团队协作。

    本文抛砖引玉,大家还有哪些Git使用技巧,欢迎在评论区赐教。

    一起学习

    欢迎在CSDN私信我,如果没能及时回复,欢迎扫下方公众号关注我:

  • 相关阅读:
    武汉市科技重大专项“卡脖子”技术攻关项目榜单出台,2022年申报条件以及申报流程是什么
    Security思想项目总结
    python k-means聚类算法 物流分配预测实战(超详细,附源码)
    HDMI 输出实验
    华为OD机试 - 最小传输时延Ⅱ (Java 2023 B卷 200分)
    mysql优化-记一次sql优化的过程
    制造业生产类数据都有哪些分类,如何分析?
    Makefile Npm
    CentOS 7 安装 MySQL 5.7
    C++QT开发——TCP&UDP网络编程
  • 原文地址:https://blog.csdn.net/w425772719/article/details/127959719