记一次git merge 事故
最近发生在自己身上的一件矬事儿,一不小心把matser上别人的代码给冲掉了,事后追溯了下原因。
1、准备三个分支,分别从master拉取 realease/v1.0分支 和 realease/bugfix 分支,再从realease/v1.0 分支拉取feature分支,如下:

2、切换到realease/bugfix分支,分别对其中两个文件进行修改,并且commit push 两次

3、将realease/bugfix分支合并到 master
4、将master 合并到 realease/v1.0上,此时realease/v1.0代码和release/bugfix分支是一致的。
5、修改feature/v1/0 中的DemoController文件,commit push

6、将master 合并到feature/v1.0上,此时会提示冲突,解决冲突后,此时feature/v1.0会有一些待commit的合并文件,而此时我又天真的revert了一下,恢复到feature/v1.0第一次提交后的状态
7、继续修改其它文件,完成feature/v1.0的第二次commit ,然后push
8、将远程feature/1.0的代码往realease/1.0合并,因为两者都刚刚把master往本分支合过代码,所以不会冲突,此时realeas/v1.0分支的代码已经和feature/1.0保持一直
9、而后realease/1.0开发完成,将realease/1.0的代码合并到mater,同样此时也不会冲突,最后master中的代码顺利变成了跟feature/1.0一致,而整个merge过程中并无冲突,所以我也没察觉到已经将release/bugfix上的代码冲掉。

记一次git merge 事故的更多相关文章
- 记一次git amend事故处理方案
一.问题回顾 问题是git commit --amend 引起的. 一条commit已经push到远端develop了,但是后来又在这条commit上进行了amend操作,导致这条commit的哈希码 ...
- git rebase vs git merge详解
https://medium.com/@porteneuve/getting-solid-at-git-rebase-vs-merge-4fa1a48c53aa#.std3ddz0g 请参考另外一篇文 ...
- 聊下git merge --squash
你经常会面临着将dev分支或者很多零散的分支merge到一个公共release分支里. 但是有一种情况是需要你处理的,就是在你的dev的分支里有很多commit记录.而这些commit是无需在rele ...
- 分支合并git checkout adview git merge adview3
分支合并 git checkout adview git merge adview3
- [git]merge和rebase的区别
前言 我从用git就一直用rebase,但是新的公司需要用merge命令,我不是很明白,所以查了一些资料,总结了下面的内容,如果有什么不妥的地方,还望指正,我一定虚心学习. merge和rebase ...
- git merge 和 git rebase 小结
Git merge是用来合并两个分支的. git merge b # 将b分支合并到当前分支 同样 git rebase b,也是把 b分支合并到当前分支 ---------------------- ...
- Git merge 与 git rebase的区别
Git merge的用法: git merge Dev // Dev表示某分支,表示在当前分支合并Dev分支 git merge -m "Merge from Dev" Dev ...
- git merge 和 rebase 区别
git pull 超级不推荐使用git pull 有坑,谨慎使用,pull底层是merge git pull 是 git fetch + git merge FETCH_HEAD 的缩写.所以,默认 ...
- git merge之squash
看CM源码时,发现历史记录里有很多squash,于是google了解了一下. Git相对于CVS和SVN的一大好处就是merge非常方便,只要指出branch的名字就好了,如: 1 2 3 4 5 $ ...
随机推荐
- Python实现 "反转字符串中的元音字母" 的方法
#coding=utf- def reverseVowels(s): """ :type s: str :rtype: str """ sS ...
- mysql abs() 获取绝对值
mysql> -); +----------+ | abs(-) | +----------+ | | +----------+ row in set (0.00 sec)
- Eclipse安装jbpm插件
1.1 eclipse mar 和neon有什么区别? Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境. . ...
- flask上传文件到指定路径
flask上传文件到指定路径 项目结构如下: 首先是:视图函数uload_file.py,代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- fro ...
- 009 SpringBoot+Swagger的使用
一:概述 1.说明 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务. 总体目标是使客户端和文件系统作为服务器以同样的速度来更新. 文件的方法 ...
- 026_如何在MAC下输入主要国家货币符号?
由于出国旅游啥的经常会记录一些东西,不避免的会遇到各种货币符号 一. 人民币: ¥(sogo输入法切换到中文模式,然后"shift键 + 4"即可) 美元: $(sogo输入法切换 ...
- Python之schedule用法,类似linux下的crontab
# -*- coding: utf-8 -*- # author:baoshan import schedule import time def job(): print("I'm work ...
- Jmeter之测试计划
一.打开jmeter时会有一个测试计划默认显示,界面如下: 二.测试计划各个配置项说明 1.名称:即整个测试计划的名称,已实际项目命名为好: 2.注释:即添加一些备注信息,以便后期回顾时查看: 3.用 ...
- k8s记录-yum本地仓库部署
#1.安装插件yum install -y yum-plugin-downloadonly createrepo rsync #2.创建仓库目录mkdir -p /mirrors/centos#3.下 ...
- ServletRequest与HttpServletRequest
ServletRequest 解析:代表来自客户端的请求.当Servlet容器接收到客户端的要求访问特定Servlet的请求时,容器先解析客户端的原始请求数据,把它包装成一个ServletReques ...