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
相关推荐
诸葛思颖2 小时前
把本地 Python 项目用 Git 进行版本控制并推送到 GitHub
git·python·github
chhanz13 小时前
git/github入门基操(终端版)
git·github
林晓lx15 小时前
使用Git钩子+ husky + lint语法检查提高前端项目代码质量
前端·git·gitlab·源代码管理
诸葛思颖16 小时前
一个本地 Git 仓库关联多个远程仓库
git
StarShip18 小时前
git commit --amend 之后,想要修改为git commit , 如何处理?
git
dnpao1 天前
在服务器已有目录中部署 Git 仓库
运维·服务器·git
__Witheart__1 天前
Git 如何从某个 commit 新建分支
git
Klaus_Wei1 天前
git 高级命令模式典型应用--“同步云端 + 清理垃圾分支”的一键命令
git·git高级用法·git同步云端·git清理垃圾分支
妙娲种子1 天前
配置git/创建第一个智能相册保存快照
git
what_20181 天前
git一个账号在两台电脑登录 出现不同用户名
git