git rebase用法详解

1. 利用git base来合并多次commit

git rebase -i HEAD~2        //合并最近俩次的commit
我是缩小后并居中的图.jpg
  • pick 的意思是要会执行这个 commit
  • squash 的意思是这个 commit 会被合并到前一个commit
  • drop 代表合并提交中排除这个提交
git rebase --abort

2. 分支的操作

2.1.我们先从 master 分支切出一个 dev 分支,进行开发:

git:(master) git checkout -b feature1
这一次彻底搞懂 Git Rebase.jpg

)

2.2.这时候,你的同事完成了一次 hotfix ,并合并入了 master 分支,此时 master 已经领先于你的 feature1 分支了:

这一次彻底搞懂 Git Rebase.jpg

2.3.恰巧,我们想要同步 master 分支的改动,首先想到了 merge ,执行:

git:(feature1) git merge master
这一次彻底搞懂git2-5343555.jpg

图中绿色的点就是我们合并之后的结果,执行:

git:(feature1) git log

就会在记录里发现一些 merge 的信息,但是我们觉得这样污染了 commit 记录,想要保持一份干净的 commit ,怎么办呢?这时候, git rebase 就派上用场了。

2.4.让我们来试试 git rebase ,先回退到同事 hotfix 后合并 master 的步骤:

2.5.使用 rebase 后来看看结果:

git:(feature1) git rebase master

这里补充一点: rebase 做了什么操作呢?

首先, git 会把 feature1 分支里面的每个 commit 取消掉;

其次,把上面的操作临时保存成 patch 文件,存在 .git/rebase 目录下;

然后,把 feature1 分支更新到最新的 master 分支;

最后,把上面保存的 patch 文件应用到 feature1 分支上;

这一次彻底搞懂git3.jpg

commit 记录我们可以看出来, feature1 分支是基于 hotfix 合并后的 master ,自然而然的成为了最领先的分支,而且没有 mergecommit 记录,是不是感觉很舒服了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、基本概念: 注:对于git的分布式概念及其优点,不重复说明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大厂offer阅读 5,302评论 0 3
  • git 使用笔记 git原理: 文件(blob)对象,树(tree)对象,提交(commit)对象 tree对象 ...
    神刀阅读 9,160评论 0 10
  • 简介 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 与常用的版本控制工具 ...
    闽越布衣阅读 7,739评论 0 18
  • 四、 分支开发工作流 现在你已经学会新建和合并分支,那么你可以或者应该用它来做些什么呢? 在本节,我们会介绍一些常...
    常大鹏阅读 6,411评论 3 24
  • 1.安装 2.创建工程 webpack是模板,还有其他的官网有介绍,webpack的应该是使用最多的了;vuete...
    MrDin9阅读 3,663评论 0 0

友情链接更多精彩内容