GIT rebase讲解

Posted andyhe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GIT rebase讲解相关的知识,希望对你有一定的参考价值。

对分支进行rebase

  1. 从master分支checkout出fork分支,并在master和fork上都进行了一些修改
    技术分享图片

  2. 现在fork分支想要及时的同步master分支上的修改,避免在已经失效的代码上继续工作
    技术分享图片

  3. 该过程总的提交树变化如下:
    技术分享图片

对一段commit进行整理(squash)

??很多开源项目要求参与者在发起RP前对本次的commit进行squash,关联上该RP的issue编号,下面看下如何达到此目的:

  1. 首先我在fork分支上进行了随意的两次commit
    技术分享图片

  2. 然后使用git rebase -i命令进行整理

    命令格式:
    git rebase -i <startpoint> <endpoint>
    需要注意<startpoint> <endpoint>是左开右 闭,所以<startpoint>应该是你需要整理的commit的上一 次提交id。
    git remote -i e14ed9d^ 342889d

    把除去第一行的其他行的pick命令修改为squash命令
    技术分享图片
    然后按照相关开源项目要求编辑整理后的comment注释
    技术分享图片

  3. 最好查看提交记录确认提交历史已经改变
    技术分享图片

  4. 此时HEAD处于了游离状态,所以我们需要把fork分支的HEAD重置到最后的commit
    技术分享图片

以上是关于GIT rebase讲解的主要内容,如果未能解决你的问题,请参考以下文章

Git-git rebase详解

Git在rebase时如何保留merge commit(实用!)

如何退出GIT的rebase状态,强制覆盖本地代码

git rebase详解

合并代码还在用 git merge?我们都用 git rebase

git commit前必须rebase吗