git 多个提交记录合并为一个

1.场景

有时候用devops等平台测试问题,需要多次修改小的记录提交,但是最终我们在合并主干的时候不想留那么多乱七八糟的记录,就需要在此分支合并这些提交记录,再合并到主干。

2.交互式变基

2.1 确定要合并的提交范围

复制代码
# 查看最近提交历史
git log --oneline

2.2 启动交互式变基

复制代码
# 合并最近4个提交
git rebase -i HEAD~4

# 或者指定到某个commit
git rebase -i abc1234^

2.3 在编辑器中修改提交指令

复制代码
pick a1b2c3d 第一个提交
squash b2c3d4e 第二个提交
squash c3d4e5f 第三个提交
squash d4e5f6g 第四个提交
  • 保留第一个提交为 pick

  • 将后续要合并的提交改为 squashs (保留提交信息)

  • 或使用 fixupf (丢弃提交信息)

2.4 保存并退出编辑器

在Vim中是:wq

2.5 编辑合并后的提交信息

  • Git会打开一个新编辑器让你编辑最终的提交信息

  • 默认会包含所有被合并提交的信息,你可以修改或保留

2.6 完成合并

  • 保存退出后,多个提交就合并为一个了

2.7 强制推送

如果已经推送到了远程仓库,合并后需要强制推送:

复制代码
git push -f
相关推荐
那年窗外下的雪.12 小时前
AIDC 学习日志|第 21 天|EVPN 多归属故障演练与中断窗口定位
网络·git·学习
玖石书15 小时前
Git Submodule 完全指南:从添加到日常维护的常规操作全流程
大数据·git·elasticsearch
微尘寒风18 小时前
git创建版本库
git
console.log('npc')1 天前
Git 冲突与 AI 协助指南
前端·人工智能·git·大模型
重生之我来学Python1 天前
Git-SVN 混合开发,从入门到精通!
开发语言·git·svn·github
笨笨饿2 天前
#137_死机恢复现场_Armino平台AP系统swd调试
git·python·stm32·单片机·嵌入式硬件·物联网·vim
King of fraud2 天前
Git 入门:从零开始的版本控制之旅
git
AI大模型-小华2 天前
Codex CLI第一次怎么用?从安装到读取本地项目完整教程
git·node.js·ai编程·开发工具·代码分析·codex·codex cli
2401_861678622 天前
Git 在 Windows 使用
windows·git·elasticsearch
青禾8372 天前
Git 与 SVN 完全指南:从集中式到分布式的版本控制
分布式·git·svn