美文网首页Git
git rebase 合并多次 commit 为一次

git rebase 合并多次 commit 为一次

作者: 小螺丝钉cici | 来源:发表于2019-12-16 14:39 被阅读0次

上线前,代码要合并到master,自己开发分支上有太多次的commit。
合并到master时只想cherry pick一次提交,且想保证master分支的历史整洁。
故而将本次提交的所有commit 合并为一次。

git rebase 命令:将多次commit合并,只保留一次提交历史记录。

1、git log 查看提交历史记录 / 或者sourceTree里找到想要合并到的commit的父级。我们需要将这次提交后的73次commit合并为一次commit

image.png

2、git 压缩 git rebase -i HEAD~6 or git rebase -i 594092408a

  • -i 的参数是不需要合并的 commit 的 hash 值,这里的594092408a 为 98d5789b 的前一次提交记录(父级);
    该命令执行后,进入 vi 的编辑模式,73次提交的commit倒序排列,最下面的是最近的一次提交记录。
image.png

修改(第2~最后一行)的第一个单词 pick 为 squash or s,然后 输入:wq or x 保存退出。
pick 的意识是要执行这个 commit
squash 的意识是这个 commit 会被合并到前一个 commit

git 会压缩提交历史,若有冲突,需要进行修改,修改的时候保留最新的历史记录,修改完之后输入以下命令:
git add .
git rebase --continue
若想退出放弃此次压缩,执行命令:
git rebase --abort
若无冲突 or 冲突已 fix,则会出现一个 commit message 编辑页面,修改 commit message ,然后 输入:wq or x 保存退出。

image.png

压缩之后

image.png

3、同步到远程 git 仓库
输入:git push -f / git push --force
查看远程仓库效果,多次 commit 已被合并成一次 commit。

image.png

4.将合并后的commit cherry pick 到master上

  • 本地代码切换到master分支上。
  • git cp a4ca1a8
  • git push 提交到远程仓库
  • 去仓库查看,是否提交成功本次提交
  • 本次提交里,有本次压缩提交commit的所有信息
image.png image.png

本文章参考:https://www.jianshu.com/p/571153f5daa1

相关文章

  • git rebase 合并多次 commit

    场景:有时候我们修改一个Bug或者一段代码的时候, commit 一次之后,发现 Bug 没改对或者这段代码需要再...

  • git rebase 合并多次 commit 为一次

    上线前,代码要合并到master,自己开发分支上有太多次的commit。合并到master时只想cherry pi...

  • Git 常用命令

    Git 初始化 Git 提交 Git 分支操作 git rebase作用 合并多个commit 为一个完整的com...

  • 补充2Git命令知多少

    6.git rebase 应用场景: 1)合并多次提交信息: A.在一个版本库中提交了三此commit: B.合并...

  • git rebase

    git rebase 可以用来合并commit 应用场景: 当对某一个功能进行多次修改,并在本地进行多次commi...

  • git commit合并

    git rebase -i 合并之前的那个commit pick表示执行squash表示被合并 pick命令保留要...

  • GIT之Rebase实用

    使用Rebase合并不合理的Commit 查看需要合并的提交 git log --pretty=oneline 第...

  • GitLab使用

    git rebase -i 合并多个commit (http://www.jianshu.com/p/964de...

  • git 修改commit message

    最近一次: git commit --amend 指定commit : git rebase -i <父 comm...

  • Git Rebase使用方法

    Git Rebase有两种使用场景:一、对本地分支代码多次commit进行合并二、对本地分支代码进行变基操作,将其...

网友评论

    本文标题:git rebase 合并多次 commit 为一次

    本文链接:https://www.haomeiwen.com/subject/ogfdnctx.html