多个commit代码提交 rebase为一个commit提交

提交了一个功能的代码,竟然被开发嫌弃提交太多commit了。所以,我需要将多个commit rebase为一个commit进行提交:

1,git log查看最近的几个提交


2,使用rebase命令,进行提交整合

git rebase -i HEAD~4   

 (4代表压缩最近4次提交),进入commit选择界面

3,丢弃commit message,将4个commit整合为一个大commit。

对于commit:"add file2 content" 6e290ff ,commit:"add file3 content"  202ca73,commit:"add file4 content"   1306a43 这3个commit,选择 fixup(即commit message丢弃保留代码改动)所以我的commit改动内容应该是:

注意:对于对顶部的commit (本例子中选取的4个commit的第一个“add file1 content” 39ec80f 需要作为基础兜底commit,只能是pick选项)

5,以上内容编辑好后,使用vi保存命令退出

esc然后输入:wq!

出现提示:Successfully rebased and updated refs/heads/dev_xxy 表示rebase成功

6,git log查看rebase后的结果:

$ git log
commit 0e535fc8fa945884da6d0669e62ed0b9854eded80 (HEAD -> dev_xxy)
Author: xxx<xxx>
Date:   Tue Sep 3 21:18:00 2024 +0800

    add file1 content

commit 6a2f9ca83ce3ff8404e532e938c496c2754sdsd45
Author:xxx<xxx>
Date:   Tue Sep 3 16:32:05 2024 +0800

    add file1

commit 57f5191ee9e841158545fd9286412324sdsdsbdce6 (origin/main, origin/HEAD, main)
Author: xxx<xxx>
Date:   Tue Sep 3 16:27:52 2024 +0800

    Initial commit

即 "add file1 content" "add file2 content"  "add file3 content"  "add file4 content"都合到 "add file1 content"

在实际中,我们可以将第一个commit起一个比较能概括功能的名字。

7,如果我们每次commit都被push到远程仓库中,

rebase后的提交要想同步到远程,必须使用如下命令。提交后整合的commit会被去掉。

$ git push origin dev_xxy --force

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值