Git-Bug分支和Feature分支
Git-Bug分支和Feature分支
Bug分支
在软件开发中,如果你正在dev
分支上进行开发,突然在master
分支上有一个紧急问题需要修复,这个时候就需要新建一个bug分支来修复这个问题,但此时dev
的开发只进行了一半,没法立即提交,此时就需要使用git 的stash
功能,先把工作区"储存"起来,等修复完bug以后恢复现场继续工作。
-
储藏当前现场
1
git stash
-
跳转到
master
分支,并新建issur-101
分支以修复bug1
2git checkout master #跳转到master分支
git checkout -b issue-101 #创建issue分支以解决问题 -
修复bug,并提交
1
2
3# 修复bug
git add <文件名>
git commit -m "fix bug 101" -
切换回
master
分支,完成合并并删除issue-101
分支1
2
3git switch master
git merge --no-ff -m "merged bug fix 101"
git branch --delete issue-101 -
回到
dev
分支恢复工作现场,并删除stash1
2
3git switch dev
git stash list # 查看stash lit
git stash pop # 回复现场并删除stash内容git stash pop
的功能可以拆分为两步,首先使用git stash apply
恢复现场,然后使用git stash drop
删除stash- 可以多次stash,先用
git stash list
查看暂存的stash,并使用git stash apply stash@{<要恢复的stash号>}
,对指定stash进行恢复
-
将
dev
分支上的此bug也进行修复1
2git switch dev
git cherry-pick <提交的版本号> # 这个版本号是提交issue-101的版本号- 为什么要这样做?
dev
其实也是早期从master
上分支出来的,因此这个bug在dev
分支上也存在
cherry-pick
相当于复制一个特定的提交到当前的分支,在执行完这个命令后,git会给dev
自动进行一次提交- 还有没有其他办法?
- 在
git stash
后,先在dev
分支上修复此bug,再cherry-pick
到master分支上也是一样的
- 在
- 为什么要这样做?
Feature分支
当你要开发一个新功能,新建一个分支并完成内容后,切回dev
分支,此时如果产品经理说这个功能不需要了,需要删除这些功能的代码,此时由于分支还没有被合并,使用git branch -d <新分支名>
会报错,产生如下提示:
1 | error: The branch <分支名> is not fully merged. |
此时就需要使用如下命令强制进行删除:
1 | git branch -D <分支名> |
- 此外,如果项目经理告诉你的时候你已经完成了合并,那么你需要进行版本回退来丢弃这次分支合并的成果。
参考资料
- Bug分支 - 廖雪峰的官方网站 (liaoxuefeng.com)
- [git如何删除分支-git-PHP中文网](https://www.php.cn/tool/git/467610.html#:~:text= git删除分支的方法:1、删除本地分支,使用[git branch --delete dev]来执行;2、删除远程分支,使用[git,push origin --delete branch]指令;3、删除追踪分支。 本文操作环境:Windows7系统,git2.26.2版本,Dell G3电脑。)
- GIT BUG分支处理 - 简书 (jianshu.com)
- Feature分支 - 廖雪峰的官方网站 (liaoxuefeng.com)
Comment