美文网首页SpringBoot
git rebase 合并多次 commit

git rebase 合并多次 commit

作者: iVikings | 来源:发表于2018-09-11 15:34 被阅读31次

    场景:有时候我们修改一个Bug或者一段代码的时候, commit 一次之后,发现 Bug 没改对或者这段代码需要再优化之类的,改完之后又 commit 了一次或多次,这样就会感觉提交历史不太美观(有点强迫症),这个时候我们就希望只想保留一次提交历史记录,合并为一个完整的提交,该怎么办呢?git rebase 应运而生!

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

    1、git log 查看提交历史记录

    git-log.png

    我们需要将 8d583c56ba29f9930963cff1d5932e0d71101808d8915ad2 合并为一个commit。

    2、git 压缩 git rebase -i HEAD~6 or git rebase -i 10b73908

    • -i 的参数是不需要合并的 commithash 值,这里的10b73908d8915ad2 的前一次提交记录; 该命令执行后,进入 vi 的编辑模式,6次提交的commit倒序排列,最下面的是最近的一次提交记录。
      git-rebase-i.png
    • 修改第2~6行的第一个单词 picksquash or s,然后 输入:wq or x 保存退出。
    • pick 的意识是要执行这个 commit
    • squash 的意识是这个 commit 会被合并到前一个 commit
      squash.png
    • git 会压缩提交历史,若有冲突,需要进行修改,修改的时候保留最新的历史记录,修改完之后输入以下命令:
      git add .
      git rebase --continue
    • 若想退出放弃此次压缩,执行命令:
      git rebase --abort
    • 若无冲突 or 冲突已 fix,则会出现一个 commit message 编辑页面,修改 commit message ,然后 输入:wq or x 保存退出。
      commit-message.png
      修改后的commit-message.png

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

    相关文章

      网友评论

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

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