@

目录

1.分支介绍

创建了一个属于自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上

2.基本使用分支

注意

所有的操作都基于已经使用git的文件夹(工程目录)

1.查看分支

git branch

2.创建一个分支dev并切换到其上进行工作

git checkout -b dev

此时状态指针状态

3.在dev分支中变更已经追踪的文件,并进行提交

#添加到stage(假如工作区已经修改这个文件)
git add 1.txt
#提交到版本库
git commit -m "dev分支第一次"

此时状态指针状态

4. dev分支的工作完成,可以切换回master分支

git checkout master

此时状态指针状态

5.把dev分支的工作成果合并到master分支上

git merge dev

这次合并是“快进模式”(Fast-forward),也就是直接把master指向dev的当前提交,所以合并速度非常快。因为此时master没有更改,所以直接指向就完事

此时状态指针状态

6.合并完成后删除dev分支了

git branch -d dev

3.解决冲突

此时指针状态(master,dev都有修改),此时去merge。git无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突。此时合并会生成一个新的提交,假设现在已经在master分支使用fast合并了一次,没有成功(git merge dev),提示必须在master手动解决冲突文件再提交

1.查看冲突文件(就是两边都有修改的文件)

git status

2.手动修改冲突文件,再加入缓存区,提交

#添加到stage(假如工作区已经解决这个冲突文件)
git add 1.txt
#提交到版本库
git commit -m "解决master和dev的冲突"

此时指针状态

3.查看状态,在命令行以图的方式查看

git log --graph

4.合并完成后删除dev分支了

git branch -d dev

3.分支管理策略

通常合并分支时,如果可能,git会用fast forward模式,但是有些快速合并不能成而且合并时没有冲突,这个时候会合并之后并做一次新的提交。

1.切换到dev分支下,并新建了一个文件提交到dev版本库

#在master分支下运行,创建dev分支并且切换过去
git checkout -b dev
#加入暂存区(创建2.txt后)
git add 2.txt
#提交到版本库
git commit -m "dev创建了2.txt"

2.切换回master分支,编辑1.txt并进行一个提交

#切换到master
git checkout master
#加入暂存区(修改1.txt后)
git add 1.txt
#提交到版本库
git commit -m "master更改1.txt"

3.合并dev分支的内容到master分支

#切换到master
git checkout master
#加入暂存区(修改1.txt后)
git add 1.txt
#提交到版本库
git commit -m "master更改1.txt"

4.删除dev分支

git branch -d dev

4.强制禁用fast forward模式

前提使用merge的时候没有冲突

git merge --no-ff -m "强制合并dev和master" dev

5. Bug分支

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

1.把当前工作现场“储藏”起来,等以后恢复现场继续工作

git stash

2.假定需要在master分支上修复,就从master创建临时分支

git checkout -b bug_master_001

3.修复完成提交

4.回到dev分支还原现场

git checkout dev
git stash pop

关于作者

个人博客网站

个人GitHub地址

个人公众号:

工具-Git与GitHub-分支管理(99.5.2)的更多相关文章

  1. python使用git进行版本控制-分支管理

    1.远程克隆 最好的方式是先创建远程库,然后,从远程库克隆: 首先在github上创建一个新的仓库,名字叫gitskills 我们勾选Initialize this repository with a ...

  2. Git如何进行分支管理?

    Git如何进行分支管理?     1.创建分支     创建分支很简单:git branch <分支名>     2.切换分支     git checkout <分支名>   ...

  3. github 分支管理

    github 分支管理 最近有同事问我git 如何管理分支,这里我以github为例,做下工作中常用的分支管理操作. 分支管理 作用:假设你准备开发一个新功能,但需要两周才能完成,第一周写了60%,如 ...

  4. Git 远程仓库分支管理

    目录 目录 速查表 关联远程代码仓库 克隆远程仓库 分支管理 创建分支 切换分支 合并分支 删除分支 解决冲突 速查表 指令 作用 git branch 查看分支 git branch newBran ...

  5. Git远程和分支管理

    一.远程       Git是分布式版本控制系统,最重要的优点就是远程仓库托管代码.不用自己搭建一个服务器,在github上面注册一个账户就可免费获取远程仓库.      首先需要先在github上面 ...

  6. 史上最浅显易懂的Git教程3 分支管理

    假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了.如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险 ...

  7. 【Git教程】Git教程之分支管理

      在前一篇文章中,主要针对Git本地仓库和远程仓库的基本操作命令进行了简要介绍,本文主要集中介绍Git的另一个主要的特点:分支管理和多人协作. 什么是分支管理   当一个任务需要多人协作完成时,每个 ...

  8. git基本操作:分支管理

    一.创建测试项目 1.新建GitHub仓库 在GitHub上面新创建一个仓库,用来演示分支管理,如下图所示: 点击“Create repository”按钮创建新仓库. 2.将本地仓库项目上传到Git ...

  9. 五、git学习之——分支管理策略、Bug分支、feature分支、多人协作

    一.分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生 ...

随机推荐

  1. 如何用CorelDRAW画箭头?

    CorelDRAW,简称为cdr,是一款专业的矢量绘图软件,在设计界也是常用的专业设计之一,在日常的设计工作中,我们常常需要绘制一些特殊的图形,比如箭头.很多对cdr不是特别熟练的小伙伴不知道如何用c ...

  2. Vegas视频的音频叠加效果怎么实现,可以用其他软件吗

    有时我们会用Vegas为某段影片配音,我们要怎么把配音和背景声融合在一起呢?想必马上会有人反应过来:让配音和背景声分别置于两条轨道上就好了.这当然是一个相当好的方式. 可是,如果我想要把两段音频合成一 ...

  3. Jenkins中如何自定义构造结果

    jenkis中的触发邮件机制是根据构建成功与否来发邮件,实际上我们在jenkis上定时执行脚本时是需要根据用例的执行结果来触发邮件预警 本文讲叙如何根据用例的执行结果来触发邮件预警 1.在任务配置的b ...

  4. 关于iOS路径变化的解决方案

    问题描述: 使用沙盒存储文件的时候,我们会保存文件的绝对路劲以便下次读取,但是发现一个现象,我们保存的文件,在第二次打开App去查找的时候,发现找不到了...... 查找原因: iOS8之后,苹果添加 ...

  5. Windows启用SSH命令

    前言 直接通过windows自带的CMD终端远程连接服务器,需要先安装好OpenSSH客户端. 安装 使用浏览器打开官网: https://www.mls-software.com/opensshd. ...

  6. docker提示容器已存在

    docker ps -a docker rm 容器id 重启启动

  7. CentOS7配置时间和CentOS6搭建局域网NTP

    NTP 2015年8月20日 星期四 17:34 CentOS 7配置本地时区和TIME ZONE #用tzselect配置时区和time zone [root@localhost Asia]# /u ...

  8. Spring Boot 2.4.0 发布,配置文件重大调整,不要乱升级!!

    前段时间 Spring Boot 2.4.0 发布了,栈长作了一个新特性全盘解读,其中介绍了一个很重要的变革,那就是配置文件. 配置文件可是每个框架的核心,不得不搞清楚,所以,这篇栈长就带大家深入实战 ...

  9. Spring Boot 2 集成 Swagger

    本文测试代码使用 Spring Boot 2.1.6.RELEASE + Swagger 2.9.2 添加依赖 <dependency> <groupId>io.springf ...

  10. CoProcessFunction实战三部曲之三:定时器和侧输出

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...