用 git rebase -i 合并多条提交记录

5 minute read

git rebase -i master

正如这篇文章说的,多条提交合成一条后,合并到主分支后的历史看起来会更简洁、清晰。万一有问题需要排查或回滚,也方便许多。这也是Rails 建议的提交流程

用到的几个命令

pick 一般是作为第一条记录

squash 将这次提交合并到之前的提交

reword 想修改提交内容,但保留提交

例如这条工作日志,其实是由多条提交记录合并而成,并记录了每次提交的内容

commit ee5d2cb0984cbffe3883e819890b083c815ebe86 (HEAD -> feat/sku_toggle_is_value_pack, origin/feat/sku_toggle_is_value_pack)
Author: Justin Chen <justin.c@shopperplus.com>
Date:   Mon Dec 9 12:14:33 2019 +0800

    feat(sku): Value Pack 切换

    fix(sku_toggle_is_value_pack): 可能多个 master product

      [修复]可能多个 master product。只留切换后的 sku 作为 master product

      [功能]首次切换时,image 也初始化上传

    fix(sku_toggle_is_value_pack): 隐藏流程有误

      [修复]隐藏流程有误

      [功能]首次切换新增变种关系(变种默认取原来的)

    fix(sku_toggle_is_value_pack): 变种记录重复

      由于 VariantValidator 限制了一条变种记录不能对应多个 sku

      需要新增变种及关系(而且名称不能重复,暂定做法是名称后面加上【-1】)

    fix(sku_toggle_is_value_pack): sku 名称太长

      由于 sku_name、sku_name_fr 长度不能超过 100,100 之后的字符【自动舍弃】

但在主分支日志看来,关于这项工作的改动都在一条提交记录,历史比较清晰

*   6e394cb5f (HEAD -> master, origin/master, origin/HEAD) Merge branch 'feat/sku_toggle_is_value_pack' into 'master'
|\
| * ee5d2cb09 (origin/feat/sku_toggle_is_value_pack, feat/sku_toggle_is_value_pack) feat(sku): Value Pack 切换
*

Tags:

Updated: