git提交代码的正确步骤_Git 合并多个提交的正确方式

1. 应用场景

对于一个项目,你可能会多次提交代码,每次提交都对应一个commit sha

68647277f73e064692f65c168d57c191.png

当完成项目,要进行分支合并的时候,只想保留一个或某几个commit,这时候就需要合并commit了。

2. 如何合并

这里介绍两种方式,第一种是git rebase,第二种是git rebase --autosquash,后者在git commit时是有条件的。

1) git rebase

第一步,开启交互模式

git rebase -i <commit_sha>

注意,这里的<commit_sha>是你针对此项目第一个提交的前一个提交的commit。

举个例子:

下面是工作中的提交记录:

52c1fb3f809e8e233aca6cd483168e6f.png

这时我们想要把前七个commit合并成一个,即:

e8e9f5f54ea231e5b9142ae7538fb504.png

其中commit_sha是第一个提交的前一个提交的哈希。 因此,在我的示例中,命令为:

git rebase -i 6394dc

第二步,摘取合并

这时候会弹出一个框,列出了你想要合并的所有commit。注意列出的顺序是从老到新的。

21ceef5fc705255ffefb18a2d3535a15.png

更改commit_sha最前面的单词,我们打算把这七个合并成一个commit,那么更改如下:

a37016790b55be3d16ec133fe9f61062.png

保存退出后,又弹出一个新的框,让我们更改commit信息,编辑完后退出就好了。最后完成的效果如下:

c5b66c10739bad1604eed423b13ef6cb.png

2) git rebase --autosquash

顾名思义,就是会自动帮你压缩commit。但是你在git commit的时候需要使用特殊命令:

git commit --fixup=<commit_sha>

这里的commit_sha是指你对哪个commit进行了更改,所以必须先至少存在一个对该项目的提交。

举个例子:

下面是工作中的提交记录:

5abf0bad29f85c791ac3677d4572b146.png

我现在有有了一个新的改动,那么在提交时,就需要用如下命令表明我是对上一个commit进行了更改:

git commit --fixup=d94e78

产生的效果是这样的:

6137340de2d6c64d34da45fd91ca5e22.png

这时候又有了一个新的改动,那么提交时的命令不变:

git commit --fixup=d94e78

产生的效果:

18413edc4639b3f7f526da8b8176bc4e.png

接下来我们进行合并操作:

git rebase --autosquash -i <commit_sha>

注意,这里的commit_sha是older commit6394dc

Git这时会很机智的补全单词,不需要手动输入了。

fddbb2cf5f3f8a1c367237ef1d17f236.png

直接保存退出,重新编辑提交信息即可。

以上两种方式,一种是提交时轻松,合并时麻烦,另外一种相反。可以根据喜好来选择使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值