Git使用reset命令合并commit

本文介绍了如何使用Git的reset命令来合并commit,避免在主分支上保留过多的提交历史。通过示例展示了在feature分支合并到master前,如何用reset回退commit,然后再提交,以保持主分支的清洁。此外,还提到了reset命令的软、混合和硬三种回退模式及其适用场景。

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

Git使用reset命令合并commit

开发的时候发现,在自己的分支开发完成后,合并到master分支中,会保留很多master主分支并不需要关心的commit历史记录,这会导致master主分支越来越不干净。而使用reset命令可以解决这一问题。

1 场景

现在master主分支的commit历史比较干净,只有一条。
在这里插入图片描述
现在开发了feature/day分支,按照不做处理的方式合并到master分支,会在master分支看到看到下图一样的提交历史。

在这里插入图片描述

master分支并不需要关心feature/day分支中的commit细节,如果feature/day分支开发时间较长,或则BUG修复次数较多,那势必产生大量的commit记录。

2 reset命令

git reset <commit_id>

reset命令可以重置当前HEAD的指向。

直接现在在新开发的分支feature/night中来使用吧,同理feature/night也有多次提交。

在这里插入图片描述

(1)在合并到master分支前,执行一下下面的命令。

git reset 66f09c5

66f09c5是night分支创建前一次commit,使用reset会让在feature/night分支上所有的提交回滚到工作区(未add)。

(2)此时重新进行一次提交,再强制push回分支,则可以刷新提交历史。

git add .
git commit -m '压缩night分支commit历史'
git push -f origin feature/night

再看看在feature/night分支的commit历史:

在这里插入图片描述

现在feature/night分支只有一条commit历史了!

3 参数

reset命令还有两个比较常用的参数:

  • –soft:回退后,保留修改到暂存区(已add,未commit)。
  • –mixed(默认):回退后,保留修改到工作区(未add,未commit)。
  • –hard:强制回退,并丢弃所有中间提交,谨慎使用。

4 总结

合并commit只是reset命令的一个应用场景,另外的还有:

  • 合并多条commit内容(本例)。

  • 上一次commit的内容写错了,需要回退进行修改。

  • 回退版本,丢弃代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值