Git 合并多次Commit与退出Rebase

本文介绍如何在Git中合并多次Commit以简化提交历史,包括使用rebase-i命令选择要合并的Commit数量,以及如何在遇到问题时退出rebase过程。同时,详细解释了在合并Commit时可能遇到的push被拒绝的情况及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Git 合并多次Commit与退出Rebase

 

合并Commit

git执行merge request时commit太多即不美观也影响查看提交log和版本回退,因此需要在git提交时合并多次Commit

1.git commit

修改代码,并执行3次commit,可以看到已经有3次提交日志

 

2.选择合并commit的数量

执行 git rebase -i HEAD~n,这里n为要合并的commit的次数,如果我们要合并当前3个,n就是3,如果要合并当前5个commit,n就是5

git rebase -i HEAD~3

 

3.合并commit

执行命令后可以看到刚才提交的3次commit已经出现,这里pick代表选中,这里需要pick一次commit,对另外两个commit执行squash操作,squash翻译为压入,塞入,合并

A.squash选择对应要合并的commit

pick xxxxxxx 测试V1
squash xxxxxxx 测试V2
squash xxxxxxx 测试V3

B.wq保存

执行后wq出现以下提示,1st是pick的commit,剩下两个是squash的commit

C.合并并退出

继续执行wq,显示合并成功

D.查看git log

日志合并成功

E.push到线上

合并commit时,如果合并的commit中之前已经git push到代码库,则执行git push origin HEAD 或者 git push origin HEAD:master 时会提示rejected,拒绝push请求,这里一般需要-f强行push:

push到当前分支

git push -f origin HEAD

push到master分支 

git push -f origin HEAD:master

 

4.合并时出现问题怎么办

A.退出git rebase

rebase时会出现冲突情况,代码很混乱,这时候需要先退出rebase

git rebase --abort

B.版本回退

退出rebase如果版本也有问题则需要强制回到某个对应版本

git reset --hard commit_id

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BIT_666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值