GIT 合并某几条 commit

使用 git 的工程师,在日常开发中肯定会遇到这样的问题,从 master 上拉出的分支,由于某些原因做了很多修改才提交了 merge request。此时该分支下会有多条 commit,有些 commit 是重要的,需要留存下来的关键节点,还有一些 commit 没那么重要,比如修复了一些小 bug 等,那就不需要保存到远程。

如何将某一些不需要的 commit 合并成一条呢?

当前我正好有一个提交了30次 commit 但还未 merge 到 master 上的分支,以此为例,详细讲述如何只保留关键节点,合并不重要的 commit。

 

GIT REBASE 指令

git rebase 指令可以理解为重置基准,目的是将当前分支重新设置开始点,从实际效果来看,可以查看当前 commit 与几个 commit 之前的代码,修改了哪些部分。

git rebase -i 中的 -i 为交互模式,即可以干预 rebase 过程中的操作。

假设当前分支有30条 commit,分别为commit 1~30,其中 commit 1为最新的 commit。

如果想将这30个 commit 中的 commit 4~9 合成一个,则需要先输入以下两条指令中的一条:

git rebase -i cb12231 (cb12231 为 commit10 的 commit id) 
git rebase -i HEAD~9

重定位到 commit 10上

你可能感兴趣的:(git,git,rebase,合并commit)