当前位置:   article > 正文

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

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
  • 2
  • 3
  • 4
  • 5
  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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 第一列是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
  • 3
  1. 设置注释
    如果需要修改下提交信息,如果不需要直接保存退出即可

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

> git log
> git push
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/407832
推荐阅读
相关标签
  

闽ICP备14008679号