[Git] 019 merge 命令的补充
回顾:[Git] 017 加一条分支,享双倍快乐 的 "2.3"
1. "Fast-forward"
- "Git" 在合并分支时会尽可能地使用 "Fast-forward"
- "Fast-forward" 这种模式会使得删除分支后丢失该分支的信息
1.1 丢失的信息
- 目前的情况

- 删除 "conflict" 分支

- 找茬时间

- 上图只展示了一部分
1.2 我打个不大恰当的比喻
- 如果
- 把非 "master" 分支看作“表演者”
- 把 "master" 分支看作“观众”
- 那么
- “表演结束”(删除分支)后
- 留给“观众”的是“台上一分钟”(最后一次 "commit" 的内容)
- 而“台下十年功”(除最后一次以外所有 "commit" 的内容),“观众”是看不到的
2. 如何让“观众”看到“表演者”的“台下十年功”?
2.1 “记者”——"merge" 的参数 "--no-ff" 还在赶来的路上
- 创建并切至分支

- 修改 "note_01.txt"

- 添加并提交

- 切回 "master" 分支

2.2 有请 "--no-ff" 闪亮登场
- "--no-ff"
- 我的出场,意味着禁用 "Fast-forward"
- 作为一个“记者”,合并这样的事当然要记作一次 "commit",所以用 "-m" 加一句“注释”

2.3 查看一下分支历史

分析
- 其实上图有三次合并历史
- 我截了张 "reflog" 的图

- 这里再次说明了 "Fast-forward" 这种模式会使得删除分支后丢失该分支的信息
- 加上"--no-ff" 参数合并后能看出来曾经做过合并
- "Fast-forward" 合并看不出来曾经做过合并
- 使用 "--no-ff" 参数合并后删除分支,仍能看出来

3. 补充:分支策略
- 在实际开发过程中
- "master" 分支需要非常稳定,仅用来发布新版本,平时不在上面干活
- "dev" 分支并不稳定,因为平时在这里干活
- 如果要发布新版本,就把 "dev" 分支合并到 "master" 分支上
- 可能许多人都是从 "dev" 分支上再开一个分支干活;干完活后往 "dev" 分支上合并
- 示意图

- 莫名地想到节点电压。。。
[Git] 019 merge 命令的补充的更多相关文章
- [Git] 024 log 命令的补充
0. 回顾 [Git] 009 逆转未来 的 "1" 画张导图 其实 --oneline 前有个"关键字参数" "--pretty" --o ...
- [Git] 026 config 命令的补充
少废话,上例子 1. 让命令更醒目 $ git config --global color.ui true 2. 偷懒 $ git config --global alias.st status 使用 ...
- [Git] 012 rm 命令的补充
0. 前言 [Git] 007 三棵树以及向本地仓库加入第一个文件 的 "2.5" 有提及 git rm --cached <file> 1. 介绍 git rm &l ...
- Git中的merge命令实现和工作方式
想象一下有例如以下情形:代码库中存在两个分支,而且每一个分支都进行了改动.最后你想要将当中的一个分支合并到其它的分支中.个人博客网址 http://swinghu.github.com/ 那么要问合并 ...
- Git中的merge命令实现中出现问题及其解决
Git中的merge命令实现和工作方式 2015年8月17日星期一 丹丹 git代码在合并两个分支的时候总是会出现一下的错误提示,不能正常的完成合并分支,错误提示如图所示: 但是在其他的终端是可以完成 ...
- Git合并分支命令:git merge --ff
今天研究了一下git merge命令常用参数,并分别用简单的例子实验了一下,整理如下: 输入git merge -h可以查看相关参数: --ff 快速合并,这个是默认的参数.如果合并过程出现冲突,G ...
- Git合并分支命令参数详解:git merge --ff
今天研究了一下git merge命令常用参数,并分别用简单的例子实验了一下,整理如下: 输入命令git merge -h可以查看相关参数: --ff 快速合并,这个是默认的参数.如果合并过程出现冲突 ...
- git merge 命令的使用
我们把dev分支的工作成果合并到master分支上: $ git merge dev Updating d46f35e..b17d20e Fast-forward readme.txt | 1 + 1 ...
- [Git] 008 status 与 commit 命令的补充
本文的"剧情"承接 [Git] 007 三棵树以及向本地仓库加入第一个文件 1. 对 "status" 的补充 1.1 "status" 有 ...
随机推荐
- ZROI 19.08.05模拟赛
传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. A \(21pts:\) 随便枚举,随便爆搜就好了. \(65pts:\) 比较显然的dp,设\(f_{i,j,k}\)表示在子树\( ...
- rsync服务端排错思路
rsync服务端排错思路 rsync服务端排错思路 查看rsync服务配置文件路径是否正确,正确的默认路径为/etc/rsyncd.conf 查看配置文件里host allow,host ...
- SpringBoot框架(6)--事件监听
一.场景:类与类之间的消息通信,例如创建一个对象前后做拦截,日志等等相应的事件处理. 二.事件监听步骤 (1)自定义事件继承ApplicationEvent抽象类 (2)自定义事件监听器,一般实现Ap ...
- ESP8266--TCP Server
所谓server,可以简单理解为提供服务,提供数据的一个地方 ESP8266上建立一个server是比较简单的,不过是属于局域网内的server,因为真正意义上的server并不是这样的,大伙了解一个 ...
- mysql增删改查相关操作
mysql增删改查相关操作 以前用mysql用的少,对于数据库相关的操作不熟悉,现在开始要接触数据库了,记录一下相关的基础操作吧. 1.数据库的授权操作 # mysql -u root -p Ente ...
- shell实现统计浏览次数并将结果保存到文件中
日志文件是每日一个.统计日志文件中的关键字,获取每日浏览次数.将次数保存到txt文件中.. 将日期也一并保存到txt文件中. 输入开始日期和结束日期,就可以统计出每日的次数 代码如下: #!/bin/ ...
- (79)【按键】[独立按键] - 1: 单击,双击,三击以及N击
此按键程序的实现的功能是单个独立按键的[单击],[长按],[双击],[三击]以及[多击].本文分为三个部分, 第一个部分是说[单击],[长按]的程序: 第二部分是讲[双击]: 第三部分是讲[三击],[ ...
- Windows 下安装Apache web服务器
1.Apache 服务器的下载 进入下载页面:http://httpd.apache.org/download.cgi 为提高下载速度,镜像选择清华大学的服务器(http://mirrors.tuna ...
- 前端面试题-CSS选择器
一.CSS选择器作用 CSS 选择器用于定位我们想要给予样式的 HTML 元素,但不只是在 CSS 中,JavaScript 对 CSS 的选择器也是支持的,比如 document.document. ...
- bootstrap 讲解(中)
bootstrap:常用于后台开发,如学生管理系统,虽然稍显笨重,但也是一个开发的利器 推荐下载 3.3.7 版本 也可下载最新版4.3.1 (最新版在手机端不起效果) 且依赖 jQuery 的封装库 ...