实现:git本地创建多个分支互不干扰
2024-08-28 19:03:30
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,恢复工作区原来的内容。
最新文章
- 判断一个 int 向量里是否有相同的数 并且距离在k之内 (2)
- cf727e
- linux系统下who&;who am i与whoami的区别,以及与select * from dba_users的区别
- [玩转微信平台]XML的格式化- 如何去掉XML 文档头和命名空间
- C#实现AES加解密方法
- Microsoft Mole原理及常见问题整理
- RESTLET开发实例(三)基于spring的REST服务
- jsonp Ajax跨域请求
- (原)Matlab的svmtrain和svmclassify
- Ionic3 遇到的一些错误-submodule update -q --init --recursive
- Gsp
- CentOS 7离线安装MySQL 5.7
- 软件质量与测试——WordCount编码实现及测试
- C++11新特性之tie、tuple的应用
- Shell-求平均
- 实现 js 数据类型的判断函数type
- hibernate11--Criteria查询
- mac shell 获取ip,自动启动文件http服务
- 1071 Speech Patterns
- 正规表达式 转 NFA C++