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
相关推荐
就叫飞六吧4 分钟前
git提取当前分支指定文件历史版本
git
数字游民95275 分钟前
网站备案全流程回放(腾讯云)
人工智能·git·github·腾讯云·网站备案·waytoopc
Albert Edison39 分钟前
【Git】多人协作一(同一分支下)
git·vscode·svn·github
学好statistics和DS1 小时前
Git 同步冲突
大数据·git·elasticsearch
德彪稳坐倒骑驴14 小时前
Git常用命令
git
无限进步_14 小时前
【C语言&数据结构】对称二叉树:镜像世界的递归探索
c语言·开发语言·数据结构·c++·git·算法·visual studio
qq_54702617917 小时前
Git 使用指南
git
XiaoHu020718 小时前
Linux多线程(详细全解)
linux·运维·服务器·开发语言·c++·git
*才华有限公司*19 小时前
RTSP视频流播放系统
java·git·websocket·网络协议·信息与通信
juelianhuayao20 小时前
Git错误提交后如何快速删除本次commit
git