git-怎样把连续的多个commit合并成一个?

Git怎样把连续的多个commit合并成一个?

Git怎样把连续的多个commit合并成一个?

参考URL: https://www.jianshu.com/p/5b4054b5b29e

  1. 查看git日志
bash 复制代码
git log --graph

比如下图的commit 历史,想要把bai "Second change" 和 "Third change" 这两个commit合并到一起
那么,可以

bash 复制代码
git rebase -i 7a734e9d47895e096313003d6a2e4f697a16e2e3

注意 7a734e9d47895e096313003d6a2e4f697a16e2e3 是 "Second change" 的前bai一个commit ID。

然后会出现bai编辑器 (具体什么编辑器看你的配置,在linux下,默认是 vi)列出从 7a734e 后面的所有commit,如下图:
因为我们要把 "Second change" 和 "Third change" 合并到一起,所以只需要把 "Third change"前面的那个 pick 改成 squash即可,意思是将 "Third change" 和 它前一个commit (即 "Second change") 合并

修改后应该是这样

默认的包括了两个commit的原始消息,你可以在这里任意修改commit message,比如改成 "Second and Third changes in single commit",然后保存退出,git就会把这两个commit变成一个新的commit。做完后我们再用git log看一下,就会变成下图
对比原始git log信息,你就可以发现两个commit被合成一个了。

同理,你可以将任意多个commit合并成一个 (第一个commit保持 pick, 后续commit改成 squash即可)

  1. 取要合并的commit最早那个的父亲ID进行变基
    使用命令
bash 复制代码
git rebase -i
相关推荐
习惯就好zz5 小时前
Git 交互式 rebase 实战:将后续修改合并到历史提交
git
南棱笑笑生12 小时前
20260429给万象奥科的开发板HD-RK3576-PI适配瑞芯微原厂的Android14时删除全部的.git目录
git·rockchip
tsyjjOvO13 小时前
【Git 从入门到实战】(IDEA+Gitee 版)
git·gitee·idea
你知道“铁甲小宝”吗丶14 小时前
git推送到多平台(gitee/github)
git·gitee·github
bksczm14 小时前
Linux之基础开发工具之git
git
GUET_一路向前14 小时前
【git工作常用指令】
大数据·git·elasticsearch
handler0115 小时前
Git 核心指令速查
linux·c语言·c++·笔记·git·学习
二宝哥15 小时前
大数据之yum安装git
git
牛奶咖啡1316 小时前
Git实践——git远程仓库操作
git·git远程仓库的创建·github创建仓库·git将本地仓库推送到远程仓库·使用git克隆远程仓库到本地·git分支的创建与合并·git冲突的产生与解决
随风,奔跑17 小时前
Git学习笔记
笔记·git·学习