看了下 git merge 的相关知识 
发现还是不能很好的解决 在Android studio 上 git合并分支 后,
在github desktop 的被合并的分支的提交信息丢失的问题
为了描述方便, 命名一下两个分支 
master ,  test
merge  是 master 去 merge test 分支
不管以何种 megre 策略  最后 在test 的提交记录 依然在 test分支上,
在master 上会有一条 merge 产生那个的新的提交记录
但是一般我们在Android Studio 看master 提交记录的时候, 还是能够看到 合并来的 test 上的提交记录
但是在github desktop 上就看不到 合并来的 test的提交记录  
最后一个条 合并产生的提交记录:
我想这大概是  github 的问题
顺便还看了 git rebase 相关的动向, 发现那玩意根本不适用, 不能解决核心问题.
其实 github这样设计 也是有它的道理的,
如果我们只看master 分支的提交记录的话, 可以很清晰的看到 其他分支的合并时 提交的记录
我想 github 是想我们不要手动在master 分支上写代码提交,
而是单独开一个分支,  写代码, 然后在把 这个分支合并到master 上去,
这样master 分支 只需要关注 这个分支实现了什么功能
具体在这个分支 里面的多次提交 不需要太在乎, 需要的话 自己前往分支查看
ok 以后代码 就这样写了
做一些  总结 git 一班有以下 三种 merge 方式:
fast-forward
no fast forward
squash
git merge 默认使用的 fast-forward 的合并方式:
下面三种合并法师的区别:
fast-forward方式就是当条件允许的时候,git直接把HEAD指针指向合并分支的头,完成合并。属于“快进方式”,不过这种情况如果删除分支,则会丢失分支信息。因为在这个过程中没有创建commit
squash 是用来把一些不必要commit进行压缩,比如说,你的feature在开发的时候写的commit很乱,那么我们合并的时候不希望把这些历史commit带过来,于是使用--squash进行合并,此时文件已经同合并后一样了,但不移动HEAD,不提交。需要进行一次额外的commit来“总结”一下,然后完成最终的合并。
--no-ff指的是强行关闭fast-forward方式。
一些产考连接:
http://segmentfault.com/q/1010000002477106
http://blog.csdn.net/wh_19910525/article/details/7554489
http://www.51testing.com/html/75/534775-853493.html
http://blog.csdn.net/hudashi/article/details/7664382

git merge fast-forward squash no-ff相关推荐

  1. Git的Fast Forward和no fast foward合并模式对比

    详细版本见个人博客:Git的Fast Forward和no fast foward合并模式对比 通常,合并分支时,如果没有分歧解决,就会直接移动文件指针,这就是Fast forward模式. 举例来说 ...

  2. Git 的 Fast Forward 和 no fast foward

    原文地址 目录 Fast forward 概述 强制禁用 Fast forward 模式的具体方法 Fast Forward 和 no fast foward 合并模式对比 分支策略 小结 Fast ...

  3. 4. git merge简介,以及git merge的参数–ff、–no-ff和–squash的区别?

    1.git merge原理 A---B---C topic/ \D---E-----F------H master 在master分支中使用git merge topic,只会将C和H中的文件进行比较 ...

  4. git merge 的两种模式的区别 --no-ff与fast forward

    git merge 将名字为branchName的分支合并到当前分支 有两种模式 git merge <branchName>:fast forward模式,快速合并,看不出做过合并. 不 ...

  5. Git – Fast Forward 和 no fast foward

    Git 很是强大,在体验过rebase的华丽之后,再次发现之前在TFS上遇到的问题一下都有解了.但也印证了Git深入并非易事.这篇就谈下一个容易迷糊的概念:Fast forward. Fast-For ...

  6. git merge --squash改写提交

    教程3 改写提交! 7. merge --squash 为了节省时间,这个教程使用现有的历史记录作为本地数据库. 从这里下载 我们移动到stepup-tutorial/tutorial7目录.本地端的 ...

  7. 如何使用git merge --squash?

    我有一个远程Git服务器,这是我要执行的方案: 对于每个错误/功能,我创建一个不同的Git分支 我继续在Git分支中使用非官方的Git消息提交代码 在顶级存储库中,我们必须使用官方Git消息对一个错误 ...

  8. 聊下git merge --squash

    你经常会面临着将dev分支或者很多零散的分支merge到一个公共release分支里. 但是有一种情况是需要你处理的,就是在你的dev的分支里有很多commit记录.而这些commit是无需在rele ...

  9. 使用git merge --squash,让commit变得优雅

    阅读本文需要3分钟 情景模拟 我们有三个分支,master,develop以及feature特性分支,假定我们开发时使用的是feature分支,我们来这里查看提交记录 当然,使用IDEA内置的 Ver ...

  10. git merge squash 和 rebase 区别

    在合并分支的时候,默认是有三种选项的,分别是 普通的 merge squash merge rebase merge 普通 Merge 说到合并分支,可能我们最熟悉的操作是这样的: 先切换到目标分支: ...

最新文章

  1. Nodejs 和PHP 性能测试结果
  2. 《HeadFirst Python》第一章学习笔记
  3. python汉诺塔运行程序_用python编写一个程序,得到汉诺塔的解决方案
  4. vue 监听页面滚动事件:触发animate.min.css动画特效
  5. 使用maven工具无法进入debug
  6. 经典算法题每日演练——第七题 KMP算法
  7. React Native随笔 2--重要函数
  8. selenium测试(Java)-- 显式等待(九)
  9. kibana集成内部账号_揭开 Elasticsearch 中身份验证和授权的神秘面纱
  10. 归类问题:简单的代价函数和梯度下降----吴恩达机器学习
  11. selenium-js
  12. C语言项目实践--图书管理系统
  13. 最强数据库工具——IDEA
  14. Java详解:Java疯狂讲义第五版下载
  15. sift算法matlab详解,sift算法原理详解及应用
  16. ESP8266 wifi模块开发汇总
  17. windows系统安装wget指令
  18. 苹果7信号天线内部位置_苹果手机的天线在什么位置
  19. 第三十七周学习生活总结
  20. 路由器关闭DHCP之后连接不到路由器设置界面?

热门文章

  1. 从零开始学习CANoe(三)—— 系统变量的创建和使用
  2. excel 如何冻结多行多列
  3. 质感美颜秒变大片,相芯科技人脸特效SDK全面升级
  4. Excel+Word批量发邮件的方法
  5. 使用wps将excel中的行转列(转置)
  6. 结构化程序设计知识点总结
  7. 二值图像分析:轮廓形状逼近与拟合
  8. ThoughtWorks 结对编程
  9. 代理ip按功能分哪几类?
  10. 怎么查看自己宽带是公网ip还是内网ip?