最近在折腾git,有感于git这个强大而好用的版本管理工具。

说说git分支管理的心得体会。

首先,要有个master主分支:


Git主分支的名字,默认叫做Master。它是自动建立的,版本库初始化以后,默认就是在主分支在进行开发。

Git 的 “master” 分支并不是一个特殊分支。
它就跟其它分支完全没有区别。
之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建它,并且大多数人都懒得去改动它。

日常开发中,要用到另外一个分支,就是Dev分支,主要用来开发,而Master主要用来重大发布。

如何创建Dev分支呢?

简单,用命令:

git checkout -b dev master

这句命令的意思是:从Master主分支上创建branch 分支:dev

那开发过程中,如何把开发分支dev合并到主分支master上呢?

用两个命令:

# 切换到Master分支
git checkout master

# 对Dev分支进行合并
git merge --no-ff dev

上一条命令的--no-ff参数是什么意思呢?

默认情况下,Git执行"快进式合并"(fast-farward merge),会直接将Master分支指向Dev分支。

再举个例子:

如果我们有一个这样的版本分支:

现在你有个紧急的bug要fix,让我们建立一个针对该紧急问题的分支(hotfix branch),在该分支上工作直到问题解决:

$ git checkout master

$ git checkout -b hotfix
现在我们根据master创建了一个hotfix分支,如果我们在这个hotfix分支把问题修复,
并提交:

$
git commit -a -m 'fixed the broken email address'

这时候,分支图变成:

现在怎么把hotfix的分支合并到master上来呢?

执行命令:

首先用checkout命令切换到master分支:

$ git checkout master

然后,把hotfix分支合并到master:
$
git merge hotfix

这个时候,分支图是这样的:


关于这个紧急问题的解决方案发布之后,你准备回到被打断之前时的工作中。
然而,你应该先删除 hotfix 分支,因为你已经不再需要它了 —— master 分支已经指向了同一个位置。
你可以使用带 -d 选项的 git branch 命令来删除分支:

$ git branch -d hotfix

这时候,要打个tag:

git tag -a 1.2 (使用-u/-s/-a参数会创建tag对象,而非软tag)

一定要为master上的这个新提交打TAG(记录里程碑)

标签tag是针对某一时间点的版本做标记,常用于版本发布。

[git]git的分支管理的更多相关文章

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

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

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

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

  3. Git 远程仓库分支管理

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

  4. Git远程和分支管理

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

  5. Git教程之分支管理之二

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

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

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

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

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

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

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

  9. git学习笔记 --分支管理策略

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

  10. git学习笔记 ---分支管理

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

随机推荐

  1. 20165218 《网络对抗技术》 Exp9 网络安全基础

    Exp9 网络完全基础 基础问题回答 SQL注入攻击原理,如何防御 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. ...

  2. 【零售App】—— react/ant design mobile项目爬坑

    一.H5制作 - 图片文本的动画效果 bug:打开一个模板,添加图片,添加动画效果,若先选定动画效果,再调节动画时间和延迟时间,则动画和延迟时间没有改变:若先调节动画时间和延迟时间在选定动画效果,则动 ...

  3. vue模板快速生成

    vue模板快速生成 vue 模板 快速生成  每一次都手动敲重复代码的话,是一个很繁琐的事情,通过vscode自带代码片段可以解决我们大部分问题 文件 => 首选项 => 用户代码片段=& ...

  4. BDD Cucumber 实战

    cucumber cucumber 是一个用于执行 BDD 的自动化测试工具. 用户指南 创建 Spring Boot 项目并引入依赖 <?xml version="1.0" ...

  5. Spring mvc注解说明

    编号 注解 说明 位置 备注 1 @Controller 将类变成Spring Bean 类 现阶段 @Controller . @Service 以及 @Repository 和 @Componen ...

  6. mysql 5.5 安装教程

    (转自:https://www.cnblogs.com/solargen/p/6835399.html) 1. 官网下载mysql5.5 下载地址: http://dev.mysql.com/down ...

  7. Jmeter之线程组(Stepping和Ultimate)

    jmeter自带的线程组比较简单,如果需要逐渐增加并发数的功能并不能实现,所以就需要使用Jmeter插件--Stepping Thread Group. 一.安装Stepping/UItimate T ...

  8. ionic3遇到的刷新页面服务器关闭的问题

    这几天为了写毕设,需要使用Ionic写手机客户端,遇到一些奇怪的问题,具体问题就是启动使用ionic serve启动服务器之后只要一刷新界面就会导致服务器关闭,报的错误如下: events.js:13 ...

  9. database 学习

    ref : 什么是NoSQL,为什么要使用NoSQL?

  10. 安装开发环境vs2017+sql2016+tfs2017

    安装开发环境vs2017+sql2016+tfs2017 编写人:左丘文 2019-7-16 近一年了,一直没空着手写点什么,跟大家交待下吧,去年一次机会,其实也不完全是去年,因此离开了我工作15年的 ...