Git 分支管理 BUG分支
软件开发中,bug就像家常便饭一样。有了bug就需要修复,
在Git中,由于分支是如此的强大,所以,
每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。

--
当你接到一个修复一个代号101的bug的任务时(假设该bug在master分支上),很自然地,
你想创建一个分支issue-101来修复它,
但是,等等,当前正在dev上进行的工作还没有提交:

如果当前dev分支上的修改不进行提交, 不能切换到master分支上去修复bug

---
并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需1天时间。
但是,必须在两个小时内修复该bug,怎么办?
幸好,Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:



储存之前:

储存之后:

----
现在,用git status查看工作区,就是干净的(除非有没有被Git管理的文件),
因此可以放心地创建分支来修复bug。

-----
首先确定要在哪个分支上修复bug,假定需要在master分支上修复,就从master创建临时分支:
切换到master分支, 从master分支上创建临时分支(前面提到了, 如果当前使用的dev分支上的修改没有commit或者stash,不能切换分支)


------
现在修复bug,

需要把“Git is free software ...”改为“Git is a free software ...”,然后提交:


-------
修复完成后,切换到master分支,并完成合并,最后删除issue-101分支(可以不删除):
$git checkout master
$git merge --no-ff -m"merged bug fix 101" issue-101


--------
太棒了,原计划两个小时的bug修复只花了5分钟!
现在,是时候接着回到dev分支干活了!


---------
发现工作区是干净的, 因为之前把工作现场先暂时用stash存储起来了

刚才的工作现场存到哪去了?用git stash list命令看看:

---------
工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
另一种方式是用git stash pop,恢复的同时把stash内容也删了:


再用git stash list查看,就看不到任何stash内容了

你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:
$ git stash apply stash@{0}
小结
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,
修复后,再git stash pop,回到工作现场。
Git 分支管理 BUG分支的更多相关文章
- GIT 分支管理:分支管理策略、Bug分支、Feature分支
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的comm ...
- Git 分支管理 Feature分支 强行删除分支
软件开发中,总有无穷无尽的新的功能要不断添加进来. 添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了, 所以,每添加一个新功能,最好新建一个feature分支, 在上面开发,完成后 ...
- git中的bug分支和Feature分支
/*游戏或者运动才能让我短暂的忘记心痛,现如今感觉学习比游戏和运动还重要——曾少锋*/ 如果对于分支还不太明白的学者.请先参考:http://www.cnblogs.com/zengsf/p/7512 ...
- git 学习笔记 --Bug分支
软件开发中,bug就像家常便饭一样.有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除. 当你接到一个修复一 ...
- git分支管理之分支管理策略
分支管理策略 阅读: 246888 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就 ...
- Git for Windows之分支管理、分支合并、解决分支冲突
分支是在稳定版本出现bug的情况下,通过分支技术,在保证稳定版本稳定的情况,修改稳定版本的(差异下载的,速度极快,不同于SVN等技术,会将所有的代码下载到本地)副本,通过合并,解决冲突,最后回归到稳定 ...
- Git复习(三)之分支管理、分支策略
创建合并删除分支 我们知道每次提交git都会将他们串成一条线,这条时间线就是一个分支.在git里这条时间线叫做主分支,即master分支 HEAD指向master,master指向最新的提交,所以,H ...
- git 创建管理远程分支
1.远程分支就是本地分支push到服务器上的时候产生的.比如master就是一个最典型的远程分支(默认). 1 $: git push origin master 除了master之外,我们还可以 ...
- NO.A.0006——Git在IntelliJ IDEA中的使用/创建项目并推送到GitHub仓库/分支管理及分支合并
一.在IntelliJ IDEA中使用Git: 1.在IDEA下创建项目并编写一个main方法的工程: 在IDEA下新建一个Project IDEA-->新建一个Project-->Fil ...
随机推荐
- iOS 10 权限配置大全
<!-- 相册 --> <key>NSPhotoLibraryUsageDescription</key> <string>App需要您的同意,才能访问 ...
- C ~ 指针零散记录
2016.10.11 一个记录 void MB_float_u16(float f,uint16_t *a,uint16_t *b) { uint8_t *fp; ① uint8_t *ap; ② a ...
- Gemini.Workflow 双子工作流入门教程一:定义流程:流程图属性
简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:流程定义:流程图属性. 步骤一:在流程管理的流程定 ...
- [2017-12-20]ElasticSearch 小记
介绍 ElasticSearch是一款搜索引擎中间件,因其强大的全文索引.查询统计能力和非常方便的全套基于Restful的接口,以及在自动分片.无停机升级扩容.故障转移等运维方面的高效性,逐渐成为中小 ...
- frp支持httpIP地址加端口号访问
(一)安装就不再多说 传送门:https://blog.csdn.net/superljn/article/details/81289993 (二)vim frps.ini [common] bind ...
- 2018.3.3 How too much fructose may cause liver damage
Fructose is the sweetest of the natural sugars. As its name suggests, it is found mainly in fruits. ...
- codeforces 660C C. Hard Process(二分)
题目链接: C. Hard Process time limit per test 1 second memory limit per test 256 megabytes input standar ...
- noip模拟赛 #2
万年rk2 我写挂大家都挂但是有人比我挂的少 我好不容易卡一波常数然后有人ak ... T1.不想写,等会放链接 T2 给一个方阵,每个地方有一个权值,把它划成两块,不能往回拐弯,求两块极差较大的那个 ...
- express使用https
目录 申请免费ssl证书 修改express的./bin/www 申请免费ssl证书 直接去阿里云申请一个免费的ssl,选择neginx下载证书就可以了,解压得到一个xxx.key.xxx.crt文件 ...
- PowerShell 总结
PowerShell 总结 1. 2. 3. 参考学习资料 (1). PowerShell 在线教程 (2). 利用Powershell在IIS上自动化部署网站 视频教程: (3). Windows ...