rebase——变基,就是这个可能会把事情搞得一团糟的操作。

对于变基,我只能说,需要一个配合默契的团队,你们心灵想通,互相了解,然后你们会做出非常漂亮的事情。对于使用变基且几乎不会出问题的团队,我一般都是由衷的赞叹和羡慕,因为真的是一群非常好的小伙伴,这样的同事在一起工作应该是非常开心的。

某次提交 commit id 为 master,基于此,有两个分支 master'(在 master 基础上有新的提交进行了更改) 和 develop,我要把 develop 的修改放到 master' 的后面,我需要做的是(git rebase master develop; git merge develop):

git checkout develop
git rebase master'
git checkout master'
git merge develop

其中 rebase 的操作实际的过程是先找到 master' 和 develop 共同的基底,再将 develop 的每次修改暂存下来,然后将当前分支指向目标基底,再将暂存依次应用到目标基底,依次应用暂存修改。这样提交记录就是一条线了,尤其适用于向一些他人维护的项目提交 pr。rebase 还有更方便的用法,是 rebase --onto,这个就厉害了,可以让你的提交记录灵活更改,你会用吗?

都是合并代码,但 rebase or merge,这是问题,我不想加入争辩,各有道理,我们需要做的更多是把两个都会用,在不同的时候你自然会做出正确的选择。对了,rebase 还可以做一些 merge 做不到的事情。提一个小问题吧:

某一个项目的提交记录是:A->B->C->D->E,发现第三次修改 C应该被抛弃(A->B->D->E),文如何用 rebase 达到目的?答案请到 git rebase --help 中自行寻找。

最新文章

  1. ZK 使用Clients.response
  2. ImportError: No module named MySQLdb
  3. PostgreSQL表空间、模式、表、用户/角色之间的关系
  4. PostgreSQL index types and index bloating
  5. hnu Counting ones 统计1-n 二进制中1的个数
  6. 四步轻松实现用Visio画UML类图
  7. 1.Mariadb(mysql)基本操作
  8. C语言中的malloc和free
  9. Appium 解决中文输入问题
  10. [Usaco2006 Dec]Milk Patterns
  11. ASP.NET - 对URL传递的值进行编码Server.UrlEncode()
  12. 【翻译自mos文章】回收 asm磁盘空间的方法
  13. 当使用System,out.println()打印一个对象是自动调用toString方法
  14. fread函数详解
  15. iOS设备中垂直同步开启后的帧率计数
  16. tomcat第一次使用正常启动后访问8080端口报404错误
  17. Scala中foldLeft的总结
  18. Qt551.主窗体Margin
  19. [福大软工] Z班 团队Alpha阶段成绩汇总
  20. luoguP3830 [SHOI2012]随机树 期望概率 + 动态规划 + 结论

热门文章

  1. css3让元素自适应高度
  2. extract函数的使用
  3. Neo4j集群容器化部署
  4. Spring Boot2 系列教程 (十一) | 整合数据缓存 Cache
  5. python 作用域,global与nonlocal的区别
  6. head查询
  7. CSS中设置元素的圆角矩形
  8. 从0到1掌握某Json-TemplatesImpl链与ysoserial-jdk7u21的前因后果
  9. Docker windows nano server容器中安装ssh实现远程登录管理
  10. python打包成可执行文件