Git Bug 分支如何处理?

应用场景如下:
当你需要修改一个 bug,但是你当前的开发功能还不想提交到远程版本库中,又必须要先将 bug 提交。

修复 bug 时,我们会通过创建新的 bug 分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场 git stash 一下,然后去修复 bug,修复后,再 git stash pop,回到工作现场;
在 master 分支上修复的 bug,想要合并到当前 dev 分支,可以用 git cherry-pick命令,把 bug 提交的修改“复制”到当前分支,避免重复劳动。

  1. 查看当前工作区的状态(假设当前在 dev 分支)

# 工作区的文件还没有提交
git status

  1. 存储当前的工作现场

git stash

  1. 再次查看工作区的状态,应该是干净的
  2. 如果需要在 master 分支上修复 bug,那么就需要从 master 分支上创建临时分支

# 切换到 master 分支
git checkout master

# 创建修复 bug 的分支为 issue-1
git checkout -b issue-1
  1. issue-1 分支上修复 bug
  2. issue-1 分支上提交代码

git add -A && git commit -m 'fixed bug 1'

  1. 切换到 master 分支

git switch master

  1. master 分支上合并 issue-1 分支的代码,并添加了合并信息

git merge --no-ff -m "merged bug fix 1" issue-1

  1. 原来是在 dev 分支上干活,现在切换到 dev 分支上继续干活

git checkout dev

# 如果此时用 git status 命令查看的话,此时的工作区是干净的

  1. 查看之前临时存储的工作现场

git stash list

  1. 恢复工作现场(有两种方法)

# 第一种方法:
# 恢复工作现场
git stash apply
# 删除之前临时存储的工作现场
git stash drop

# 第二种方法:
# 恢复的同时把 stash 内容也删了
git stash pop

  1. 如果需要恢复指定的工作现场

# 查看所有的工作现场
git stash list

# 恢复名称为 「stash@{0}」 的工作现场
git stash apply stash@{0}

  1. 将修复好的 bug 同步到其他的分支

可以通过直接将修复 bug 的文件修改内容复制到其他分支,比如在 issue-1 分支上修复的提交版本号为 c55ae16d5b1a,现在只需要将这个版本号的所有修改内容复制到 dev 分支上即可。


# 当前分支为 dev
git checkout dev

# 复制一个特定的提交到当前分支(此操作会自动提交一个版本号)
git cherry-pick c55ae16d5b1a


最后说个事
公号算法变了,为防止看不到我的更新
大家帮忙加个星标
点击上方的公众号卡片
再点右上角三个点
就能看到设为星标
算我跪下来求你们

往期精选:

微信上的这3个隐藏“标志”,代表有人喜欢你,一眼便知

微信,看看你的另一半跟谁聊天频繁!

让你的微信“拍一拍”有趣且不失风度

微信年度账单来了,不敢看!

还在使用默认的微信图标?赶紧换个吧!

我的微信和你们的不一样!?

原文始发于微信公众号(浅墨觅尘往):Git Bug 分支如何处理?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/222123.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!