合并git commit记录

118 阅读1分钟

场景:代码仓库前期管理不完善,导致commit logs重复、杂乱。

  • 思路一:git rebase --soft
// 查看git log 
git log --oneline

...

abaa Merge Remote ...
abbb Merge Remote ...
abcc [ADD] 登录接口去掉验证码
abdd [ADD] 登录接口去掉验证码
efgh [ADD] 增加日志

现要将efgh后的abaa...abdd四个commit合并为一个。

// 从该4commit的前一次commit efgh开始
git reset --soft efgh

// 查看git状态
git status

// 再走一遍git的addcommit、push流程
git add .
git commit -m "[UPDATE]登录接口移除验证码"
git push -f

commit记录合并完成。

话说回来,该方法有个痛点:仅能从当前分支的最新commit记录往前操作。即:master分支按提交时间从新到旧,有a、b、c、d、e五个提交,git reset --soft操作必须包含最新的a提交,可合并ab、abc,无法绕过a合并bc、cd。

话又说回来,如果非要绕过a合并其他提交记录,办法也是有的,就是git rebase -i,但该方法稍微复杂一点。

  • 思路二: git rebase -i

改天再写