Git(09)_合并多个提交到一个提交上面

语境: 在多一个 commit 的备注相同, 或者, commit次数过多, 将多个commit合并成一个commit , 使 log 看起来好看.

合并最后几次的commit

  1. 查看 要合并的 log
>git log --oneline
bc8bae7 (HEAD -> master) update4
71ea6ce feat: update3
4ae5cc9 update2
f5a07a8 update1
  1. 合并update 4-2 成为 1 个commit
# 会将update 4, update3, update2 合并成一个commit 
>git rebase -i HEAD~3 
pick 4ae5cc9 update2 
pick 71ea6ce update3
pick bc8bae7 update4
 # Rebase bc8bae7 ..4ae5cc9 onto a9269a3 (3 commands)
 #
 # Commands:
 # p, pick = use commit
 # r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
  • 第一列是rebase具体执行的操作,其中操作可以选择,其中含义如下:
  • 选择pick操作,git会应用这个补丁,以同样的提交信息(commit message)保存提交
  • 选择reword操作,git会应用这个补丁,但需要重新编辑提交信息
  • 选择edit操作,git会应用这个补丁,但会因为amending而终止
  • 选择squash操作,git会应用这个补丁,但会与之前的提交合并
  • 选择fixup操作,git会应用这个补丁,但会丢掉提交日志
  • 选择exec操作,git会在shell中运行这个命令
  1. 执行合并操作
    所以保留第一个提交, 合并 第二个, 第三个提交,
    :wq 进行保存退出操作
pick 4ae5cc9 update2 
s 71ea6ce update3
s bc8bae7 update4
  1. 设置注释
    如果需要修改下提交信息,如果不需要直接保存退出即可

  2. 完成合并处理, 使用 log 查看
    使用log查看没问题后就可以使用push推送到云端

> git log
> git push
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值