1.新建分支

   git checkout -b <branch-name>  创建一个分支并且切换到这个分支。

   git checkout -b <branch-name> = git branch <branch-name> + git checkout <branch-name> 

例子:1.假设你现在在开发一个项目,而且已经有了一些提交。如下图所示。

  2.这时候,有客户报了一个defect需要你修复,代号是#53,这时候你可以使用 git checkout -b <branch-name> 创建一个iss53的分支去解决这个defect。 创建成功之后,分支情况如下图所示。

  3.经过一段时间的奋力开发,你终于提交了一些代码去解决这个defect。iss53分支随着你的提交而向前移动。 提交之后的分支情况如下图所示。

  4.这时候,又有一个非常紧急的bug需要你去修复,其优先级高于iss53。你应该怎么做?在Git中你不需要将你针对iss53的代码的修改进行还原。你需要做的仅仅只是切换回master分支是上,并且创建一个分支去fix这个bug,然后在hotfix分支上去fix这个紧急的bug。执行 git checkout master  git checkout -b hotfix 两条命令。

  注意:由于git checkout master会将你的工作区域恢复成master分支上最后一次提交时候的样子,所以你需要确保你的暂存区和工作区中所有针对iss53的修改都已经被commit了,否则Git会阻止你直接切换到master分支。

  当你创建了hotfix分支,并且有了一定的提交之后的分支情况如下图所示。

  5.当hotfix分支的开发完成之后,你可以进行相关的测试,测试通过之后,然后可以使用将其合并到master分支上,部署到线上。

   $ git checkout master

   $ git merge hotfix

  注意:git merge的含义是将hotfix分支的内容合并进master分支,也就是说使master分支能够引用到hotfix分支的代码,观察上图可以发现,Git只需要将master指针向前(右)移动就可以了。这种情况的合并在Git中被称为快进(fast-forward),因为只是移动了指针。

  合并完成之后,分支情况如下图所示:

  需要紧急修复的bug已经被修复了,我们创建的hotfix分支,这时候就可以被删除了。

  使用 $ git branch -d hotfix 删除一个分支。

  6.这时候,你可以切换回iss53分支,进行以前还没有完成的工作。

  使用 git checkout iss53  ,然后你就可以继续去解决#53这个defect了。

  注意:你关于hotfix的代码并没有包含在iss53中,你可以等待iss53开发完成之后,直接将iss53合并到master中;或者将master中的代码合并到iss53中之后在进行开发。

8.Git分支-分支的创建与合并-01的更多相关文章

  1. git分支管理之创建与合并分支

    在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而 ...

  2. GIT 分支管理:创建与合并分支、解决合并冲突

    分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇宙合并 ...

  3. Git 基础教程 之 创建与合并分支

  4. 创建与合并分支-git入门教程

    在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而 ...

  5. git创建与合并分支

    创建与合并分支 在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分 支,即master分支.HEAD严格来 ...

  6. 9.Git分支-分支的创建与合并-02

    在 8.Git分支-分支的创建与合并-01 主要通过一个例子介绍了分支的新建,以及在工作中,git分支的新建切换以及使用,这里主要介绍分支的合并.这里的例子和8.Git分支-分支的创建与合并-01 的 ...

  7. [廖雪峰] Git 分支管理(1):创建与合并分支(HEAD、master、dev、指针)

    每次提交,Git 都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在 Git 里,这个分支叫主分支,即 master 分支.HEAD 严格来说不是指向提交,而是指向 mas ...

  8. git 学习笔记 --创建与合并分支

    在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而 ...

  9. Git创建与合并分支,撤销修改

    git回滚到指定版本并推送到远程分支(撤销已提交的修改,并已push) git reset --hard <commit ID号> git push -f git回滚到上一个版本并推送到远 ...

随机推荐

  1. Python 常用Web框架的比较

    转载来自:https://www.cnblogs.com/sunshine-1/p/7372934.html 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OL ...

  2. Excel—文本函数

    LEFT(从左开始取文本的函数)就是这个函数可以帮我们取文本,按照从左到右的顺序取 函数语法:=LEFT(要取的文本所在的单元格,从左到右取前几位)这表示的是字符,一个英文字母占一个字符,一个汉子也占 ...

  3. unity skybox天空盒分享无需下载

    大概有几十种还是100种,具体忘了 反正很多就是了(哈哈哈哈哈!!!!!!!!!!!!) 老铁们, 多谢支持,谢谢大家. 根据需要使用,下面会分享出下载链接: 链接:https://pan.baidu ...

  4. *CTF 2019 quicksort、babyshell、upxofcpp

    这次参加比赛总共出了三道,有两道队友都先交了,还是tcl,heap_master卡了差不多一天没解决....还是记录一下出的题目吧 quicksort 题目大体流程就是输入要输入的数字数量,然后输入数 ...

  5. Android进阶:七、Retrofit2.0原理解析之最简流程【下】

    紧接上文Android进阶:七.Retrofit2.0原理解析之最简流程[上] 一.请求参数整理 我们定义的接口已经被实现,但是我们还是不知道我们注解的请求方式,参数类型等是如何发起网络请求的呢? 这 ...

  6. x64类型的程序逆向思考

    x64类型比较习惯ida去分析,需要注意的是在x64程序中,有时会因为自己对寄存器不太熟悉导致自己分析过程混淆,下面坐下简单记录

  7. 【2019雅礼集训】【最大费用流】【模型转换】D2T3 sum

    目录 题意 输入格式 输出格式 思路 代码 题意 现在你有一个集合{1,2,3,...,n},要求你从中取出一些元素,使得这些元素两两互质.问你能够取出的元素总和最多是多少? 输入格式 一个整数n 输 ...

  8. [CF1132G]Greedy Subsequences

    [CF1132G]Greedy Subsequences 题目大意: 定义一个序列的最长贪心严格上升子序列为:任意选择第一个元素后,每次选择右侧第一个大于它的元素,直到不能选为止. 给定一个长度为\( ...

  9. Kafka 安装配置

    1. 下载安装kafka 下载地址:http://apache.fayea.com/kafka/ 解压安装包 tar zxvf kafka_版本号.tgz 2. 配置 修改kafka的config/s ...

  10. Spring Cloud下微服务权限方案

    背景从传统的单体应用转型Spring Cloud的朋友都在问我,Spring Cloud下的微服务权限怎么管?怎么设计比较合理?从大层面讲叫服务权限,往小处拆分,分别为三块:用户认证.用户权限.服务校 ...