git本地创建多个分支互不干扰

在项目开发过程中,经常会遇到下面这种情况:

业务情景:在做某个需求a时,先需要修改紧急bug b;发版时发的是远程dev的代码

方式一(推荐):
(1)本地已有分支dev,写了需求a,先commit,即将工作区的内容提交到版本库中,否则切换到其他分支时,就会覆盖当前工作区的代码。(这步很重要)
(2)在本地创建dev_bug分支,从远程dev分支中check(git checkout -b dev_bug origin/dev)
(3)在本地dev_bug上修改bug,并commit、push到远程dev上
(4)在本地变换到dev,继续做需求a
 
方式二:
(1)本地已有分支dev,写了需求a,先commit,即将工作区的内容提交到版本库中,否则切换到其他分支时,就会覆盖当前工作区的代码。(这步很重要)
(2)执行git log --pretty=oneline,会显示所有的版本号,记住最新的那个版本号,记为A
(2)然后执行git reset --hard HEAD^,恢复到上个版本。
(3)本地新建分支dev_debug(git checkout -b dev_debug),这时dev_debug的代码是写需求a之前的版本。修复完bug后,提交并push到远程dev。
(4)本地切换到dev分支,并回到最新的那个版本A ,执行命令git reset --hard <A前几位>,这时又回到需求a的开发。
 
方式三(推荐
(1)本地已有分支dev,写了需求a,但是不要提交。
(2)执行git stash命令,将工作区的内容“储存起来”
(3)接着在dev分支上修改bug,并提交,push
(4)执行git stash pop,恢复工作区原来的内容。
 
 

最新文章

  1. 判断一个 int 向量里是否有相同的数 并且距离在k之内 (2)
  2. cf727e
  3. linux系统下who&amp;who am i与whoami的区别,以及与select * from dba_users的区别
  4. [玩转微信平台]XML的格式化- 如何去掉XML 文档头和命名空间
  5. C#实现AES加解密方法
  6. Microsoft Mole原理及常见问题整理
  7. RESTLET开发实例(三)基于spring的REST服务
  8. jsonp Ajax跨域请求
  9. (原)Matlab的svmtrain和svmclassify
  10. Ionic3 遇到的一些错误-submodule update -q --init --recursive
  11. Gsp
  12. CentOS 7离线安装MySQL 5.7
  13. 软件质量与测试——WordCount编码实现及测试
  14. C++11新特性之tie、tuple的应用
  15. Shell-求平均
  16. 实现 js 数据类型的判断函数type
  17. hibernate11--Criteria查询
  18. mac shell 获取ip,自动启动文件http服务
  19. 1071 Speech Patterns
  20. 正规表达式 转 NFA C++

热门文章

  1. 003_对go语言中的工作池代码练习的一些思考和改进
  2. java_方法的定义、调用、重载
  3. eclipse中启动tomcat出现错误的解决方法
  4. C#LeetCode刷题-广度优先搜索
  5. 制作qq简易聊天框
  6. 精讲RestTemplate第7篇-自定义请求失败异常处理
  7. 初期web渗透的学习路线
  8. 从ReentrantLock详解AQS原理源码解析
  9. 洛谷 P6218 [USACO06NOV] Round Numbers S
  10. Python3技巧:动态变量名