默认情况下, Git合并是采用"fast forward"模式,但这种模式下,如果删除分支,会丢掉分支信息

禁用 fast forward 模式:

git merge --no-ff -m "merge with no-ff" dev

分支策略

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

bug 分支:

比如我们正在工作,突然需要修复一个bug,而当前手上dev分支的工作还没有做完,无法提交,可以使用命令:

git stash      ----- 存储当前工作现场 (当前在dev 分支上)

然后创建一个分支

git checkout -b issue-101     (比如,在master分支上修复,那么,就需要在master分支上创建 issue-101分支)

修复好bug并提交

然后 切换到 master 分支上,合并 issue-101 分支

git merge --no-ff -m "merged fix bug 101" issue-101

合并完删除issue-101分支,

git branch -d issue-101

再切换到dev 分支,通过命令

git stash list    ----- 查看存储的工作现场项

恢复有两种方法,第一种是 git stash apply 这种方法恢复后 stash 内容并未删除,还须 git stash drop 来删除

第二种是 git stash pop 这种方法恢复后会将stash内容一并删除,

当有多个stash时,可以回到任意一个stash,比如,我又三个stash项,现在我想回到stash@{1}项,

git stash pop stash@{1}

Git 学习第三天(二)的更多相关文章

  1. Git 学习(三)本地仓库操作——git add & commit

    Git 学习(三)本地仓库操作——git add & commit Git 和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念.这在上文已有提及,本文具体说明什么是工作区及暂存区,以及 ...

  2. Git学习(三)——暂存区、远程仓库、增删改管理

    一.工作区和暂存区 工作区(Working Directory) 就是在你的电脑里能看到的目录 版本库(Repository) 工作区中的一个隐藏目录.git,这个不算工作区,而是Git版本库.Git ...

  3. Git学习笔记--配置(二)

    由之前文章,总结得出Git的特点: 最优的存储能力: 非凡性能: 开源的: 管理成本低: 很容易做备份: 支持离线操作: 很容易定制工作流程: Git is a free and open sourc ...

  4. Git学习教程三之分支管理

    实战流程: 1:代码库克隆一份至本地 2:新分支操作 2.1  在需要的文件中创建并指向新的分支方便写代码  git checkout -b <name>                2 ...

  5. javaweb学习总结(三十二)——JDBC学习入门

    一.JDBC相关概念介绍 1.1.数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...

  6. Python学习(三十二)—— Django之视图系统

    转载自:http://www.cnblogs.com/liwenzhou/articles/8305104.html Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Pyth ...

  7. Jmeter学习(三十二)调试工具Debug Sampler(转载)

    转载自 http://www.cnblogs.com/yangxia-test 一.Debug Sampler介绍: 使用Jmeter开发脚本时,难免需要调试,这时可以使用Jmeter的Debug S ...

  8. Git学习笔记(三)

    Git提交相关内容 在Git提交时,会保存一个提交对象,该对象包括一个指向暂存区内容快照的指针,包括本次提交作者等相关附属信息,包括零个或多个指向该提交对象的父对象指针:首次提交时是没有祖先,普通提交 ...

  9. git学习(三):版本控制

    查看每次修改日志 git log 会显示每次修改的日期和相应提交的commit 版本控制 git reset --hard <版本id> 这里的id可以是HEAD^(上一个) HEAD^^ ...

随机推荐

  1. SQL 测验题目(30道)

    1.SQL 指的是? 您的回答:Structured Query Language 2.哪个 SQL 语句用于从数据库中提取数据? 您的回答:SELECT 3.哪条 SQL 语句用于更新数据库中的数据 ...

  2. 2015 ACM-ICPC 亚洲区上海站 A - An Easy Physics Problem (计算几何)

    题目链接:HDU 5572 Problem Description On an infinite smooth table, there's a big round fixed cylinder an ...

  3. Java 实例 - 状态监测

    以下实例演示了如何通过继承 Thread 类并使用 currentThread.getName() 方法来监测线程的状态: Main.java 文件 1 2 3 4 5 6 7 8 9 10 11 1 ...

  4. 转 loadrunner11 录制 chrome 浏览器

    chrome不设置代理的原始状态 图1 [LoadRunner]解决LR11无法录制Chrome浏览器脚本问题   LoadRunner录制脚本时,遇到高版本的IE.FireFox,或者Chrome浏 ...

  5. 《Hadoop学习之路》学习实践

    (实践机器:blog-bench) 本文用作博文<Hadoop学习之路>实践过程中遇到的问题记录. 本文所学习的博文为博主“扎心了,老铁” 博文记录.参考链接https://www.cnb ...

  6. 高级UI晋升之自定义View实战(六)

    更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680本篇文章将从Android 自定义属性动画&Camera动画来介绍自定义V ...

  7. Android——谷歌官方下拉刷新控件SwipeRefreshLayout(转)

    转自:http://blog.csdn.net/zouzhigang96/article/details/50476402 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言: 如今谷歌推出了 ...

  8. day04 python列表 元组 range()

    day04 python   一.列表 1.什么是列表     列表是可变的数据类型: 和字符串不同, 做的操作直接改源数据     列表由[]来表示, 每项元素用逗号隔开.列表什么都能装,能装对象的 ...

  9. AE开发中实现Control中的各种图形工具的方法(转)

    Controls中的工具基本可以分为两类: 第一类:点击工具图标或按钮后,当前axMapControl的工具即为所点击的工具命令. 前面有Controls 后面有tool的工具都可以用同一类的代码实现 ...

  10. JavaWeb开发之一《Tomcat服务器的部署、安装及应用》

    搬以前写的博客[2014-12-10 21:43] 这几天做了一个Java的程序,然后先把他搭载到Web上,于是学习了基于Tomcat服务器的web开发,这里回顾一下Tomcat服务器的搭建过程. 1 ...