问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Git rebase 实战:如何重建清爽的提交历史

创作时间:
作者:
@小白创作中心

Git rebase 实战:如何重建清爽的提交历史

引用
CSDN
1.
https://blog.csdn.net/qq_28314431/article/details/141058171

在代码评审过程中,经常会遇到分支上存在多个杂乱的commit,这不仅让评审者感到困扰,也不利于代码管理。Git的rebase命令提供了一个解决方案,可以将多个commit压缩为一个,使提交历史更加清晰。本文将详细介绍如何使用Git rebase来实现这一目标。

Git rebase的作用

Git rebase命令主要有两个作用:

  1. 将当前分支的更改重新应用到目标分支上,即变基。
  2. 对当前分支的历史提交进行更改,这里称之为交互式变基。

变基

变基具体来说就是:如果你正在一个分支上工作,想要将这些更改合并到主分支master上,但是主分支上已经有了新的提交,此时使用 rebase 可以让当前分支的更改应用到最新的主分支上。

交互式变基

交互式变基时,可以使用不同的命令来修改提交历史:

  • p, pick <提交>:使用提交
  • r, reword <提交>:使用提交,但修改提交说明
  • e, edit <提交>:使用提交,进入 shell 以便进行提交修补
  • s, squash <提交>:使用提交,但融合到前一个提交
  • f, fixup <提交>:类似于 “squash”,但丢弃提交说明日志

Commit压缩/合并操作

"将多个commit合并为一个"就是通过交互式变基完成的。具体操作如下:

  1. 执行

    git rebase -i HEAD~n
    

    其中,n为你想要合并的提交数量。例如:

    git rebase -i HEAD~6
    

    这将打开一个交互页面。

  2. 将下面5个pick改为squash并保存。

  3. 执行

    git push -f
    

通过以上3步就完成了commit合并/压缩。效果如下:

总结

开发过程中,为了避免代码丢失或其他因素,一次功能的完成避免不了多次提交。写好提交不仅可以帮助开发人员理清代码的逻辑,而且,整洁的提交记录也可以提高评审效率。所以,尽可能在一个提交中完成一个完整的功能。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号