如何用 git 热修复主分支上的 bug?

2021/06/06

「如何」系列第一篇,介绍 git 工具热修复主分支的方法。

问题场景

有时候我们需要修复一个线上(位于 master 分支)的bug,但又不希望影响本地分支和其他分支。

解决方案

考虑从 master 复制一个新分支 master_hotfix,在新分支上完成 bug 修复之后 mergemaster 分支,修复完成后删除 master_hotfix分支

步骤

  1. 暂存当前工作分支尚未commit 的内容

    1. git stash save “save message”

执行存储时,添加备注,方便查找,只有git stash 也是可以的,但查找时不方便识别

 2. git stash show
        

显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}

  1. master 复制新分支 master_hotfix

    1. git checkout master

切换到 master 分支

 2. git checkout -b master_hotfix
        

从当前分支(master)复制到新分支开发

 3. git branch --set-upstream-to=origin/master_hotfix
        

与远程分支进行关联

 4. git pull
        

拉取验证

  1. 在远程仓库将master_hotfix merge 到master 分支

  2. 删除master_hotfix分支

    1. git branch -D master_hotfix

删除本地分支

注:-D--delete --force的缩写,这样写可以在不检查 merge 状态的情况下删除分支

 2. git push origin --delete master_hotfix
        

删除远程分支

 3. git branch -a
        

查看所有分支(本地分支和远程分支),检验是否删除成功

参考

git 删除分支

Git复制已有分支到新分支开发