Git 如何合并commits成一个(squash)

本文介绍了如何使用gitrebase和gitreset将多个commits合并为一个。方法一涉及从upstream拉取branch,切换到dev_branch,然后使用gitrebase-i进行交互式rebasing,将pick改为s来squash。方法二则通过gitlog找到目标commit,使用gitreset--soft结合gitcommit完成。注意,rebase可能因冲突导致失败。

Git 如何合并commits成一个(squash)

两种方法。

方法一:使用git rebase

本地先从upstream拉一个branch

git checkout -b <main_branch>
git pull upstream <main_branch>
git checkout <dev_branch>

然后git rebase

git rebase -i <main_branch>

在跳出来的vim中对于需要squash的commit 前面把pick删掉写成s即可
注:这种方法如果upstream和本地对于起始commit都有update会有conflict squash不会成功

方法二:使用git reset

先通过git log查看一下要合并到哪个commit
然后简单明了使用

git reset --soft <commit_hash_to_squash_to> && git commit

再加上commit信息然后:x保存成功即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值