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,恢复工作区原来的内容。
 
 

实现:git本地创建多个分支互不干扰的更多相关文章

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

    git本地创建多个分支,互不干扰. 情景:在做某个需求a时,先需要修改紧急bug b:发版时发的是远程dev的代码.   方式一(推荐): (1)本地已有分支dev,写了需求a,先commit,即将工 ...

  2. 如何将git本地创建的项目推送到github仓库

    除了集中式的版本控制系统CVS和SVN外,还有目前世界上最先进的分布式版本控制系统Git,它的创始人是创建了linux的大神 - linus.GitHub网站与2008年开始服役,为开源项目免费提供G ...

  3. git本地创建分支,并提交到github上去

    很多时候,我们再开发的时候需要分支. 那么怎么在本地创建分支,并提交到github或者是远程仓库中呢? 其实很简单: 第一步: git checkout -b dev     创建新的分支 第二步: ...

  4. git本地创建新分支并推送到远程仓库

    1,在当前项目目录,从已有的分支创建新的分支(如从master分支),创建一个dev分支 git checkout -b dev 2,创建完可以查看一下,分支已经切换到dev git branch * ...

  5. git本地检出远程分支

    场景:本地分支被误物理删除,想要重新将自己的分支代码从远程拉取下来.(此时取的是最后一次git push上去的分支代码) 1.与远程仓库重新建立关系 1 git clone git@gitlab.名称 ...

  6. GIT:创建、查看分支命令(git branch -vv)

    在开发过程中一般会用到Git进行版本管理,创建查看分支并与远程仓库交互是非常常见的操作. branch分支 是指在开发主线中分离出来的,做进一步开发而不影响到原来的主线. Git存储的不是一系列的更改 ...

  7. 关于 git 本地创建 SSH Key 遇到的一点问题(①file to save the key & ②the authenticity of host...)

    背景 由于想测试一下 SSH Key 创建的路径(.ssh 目录路径)对于不同位置 git 项目是否有效. 比如,.ssh 默认在 C:\[users]\[username] 目录下,而项目 proj ...

  8. 【Git】创建一个空分支

    1 创建一个分支 使用参数 --orphan,这个参数的主要作用有两个,一个是拷贝当前所在分支的所有文件,另一个是没有父结点,可以理解为没有历史记录,是一个完全独立背景干净的分支. 参考git的帮助文 ...

  9. Git 本地创建分支并提交远程分支

    在本地git checkout -b xxx 创建分支之后 想要提交分支到远程, 直接git push是不行的, 除非原来的分支里面就有这个分支. 需要先使用:git push origin  xxx ...

随机推荐

  1. C语言学习笔记之杂七杂八容易忽略的点(以后看到一直补充)

    1.变量名可以由 数字 字母 下划线 组成.数字不能用在开头 2.取余%:  只能是整数取余 3.sizeof是个关键字  不是函数 4.printf("%10d\n",a); 共 ...

  2. JS DOM笔记

    js的组成     ECMAScript:JS的语法     DOM:页面文档对象模型     BOM:浏览器对象模型     web APIs     是浏览器提供的一套操作浏览器功能和页面元素的A ...

  3. 简直骚操作,ThreadLocal还能当缓存用

    背景说明 有朋友问我一个关于接口优化的问题,他的优化点很清晰,由于接口中调用了内部很多的 service 去组成了一个完成的业务功能.每个 service 中的逻辑都是独立的,这样就导致了很多查询是重 ...

  4. java类的定义与使用

    一 引用数据类型 1.引用数据类型的分类 我们可以把类的类型为两种: 第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包 含了很多的方法与属性,可供我们使用. ...

  5. 使用Python语言通过PyQt5和socket实现UDP服务器

    前言 最近做了一个小软件,记录一下相关内容. 已有条件 现在已有一个硬件设备作为客户端(暂称其为"电路"). 基于SIM卡,电路可以通过UDP协议传输数据(程序已经内置在电路中), ...

  6. GitHub上最火的SpringCloud微服务商城系统项目,附全套教程

    项目介绍 mall-swarm是一套微服务商城系统,采用了 Spring Cloud Greenwich.Spring Boot 2.MyBatis.Docker.Elasticsearch等核心技术 ...

  7. C#LeetCode刷题之#122-买卖股票的最佳时机 II(Best Time to Buy and Sell Stock II)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4032 访问. 给定一个数组,它的第 i 个元素是一支给定股票第  ...

  8. 03 Arduino-模拟输出与PWM的操作方法

    在arduino开发板上面,标注为PWM的管脚的可以被当作数模转换管脚使用 01 模拟输出  analogWrite(pin, value) pin: 选定的引脚号码  value:取值范围 0-25 ...

  9. python基本数据类型(二)

    列表   list 1.list.append( p_object) ----  增加列表参数(向后追加) list=['lifei','liuhua','laochai'] list.append( ...

  10. 遍历数组,对象和JSON

    遍历数组 var arr2 = [3,4,5,6,7,8]; //第一种方法 for(var i =0;i<arr.length;i++){ console.log(arr2[i]); } // ...