gitgit rebase 合并几个commit

Posted ThinkerWing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gitgit rebase 合并几个commit相关的知识,希望对你有一定的参考价值。

适用于你的分支落后目标分支很多的时候,看起来清爽点
合并多个commit
修改commit message内容

rebase 命令

基础指令介绍

git 合并几个commit

git log --oneline 一条一条查看git日志
git rebase -i HEAD~n n为数字,可以合并多条commit,修改commit内容
进入vim编辑页面后 按i就是insert 就可以根据上面的提示修改
修改好之后按esc 再按:wq保存退出

git rebase --continue 继续下一个rebase
git rebase --abort 取消rebase合并
# 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
# 命令:
# p, pick <提交> = 使用提交
# r, reword <提交> = 使用提交,但编辑提交说明
# e, edit <提交> = 使用提交,但停止以便在 shell 中修补提交
# s, squash <提交> = 使用提交,但挤压到前一个提交
# f, fixup [-C | -c] <提交> = 类似于 "squash",但只保留前一个提交
#                    的提交说明,除非使用了 -C 参数,此情况下则只
#                    保留本提交说明。使用 -c 和 -C 类似,但会打开
#                    编辑器修改提交说明
# x, exec <命令> = 使用 shell 运行命令(此行剩余部分)
# b, break = 在此处停止(使用 'git rebase --continue' 继续变基)
# d, drop <提交> = 删除提交
# l, label <label> = 为当前 HEAD 打上标记
# t, reset <label> = 重置 HEAD 到该标记
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# .       创建一个合并提交,并使用原始的合并提交说明(如果没有指定
# .       原始提交,使用注释部分的 oneline 作为提交说明)。使用
# .       -c <提交> 可以编辑提交说明。
#
# 可以对这些行重新排序,将从上至下执行。
#
# 如果您在这里删除一行,对应的提交将会丢失。
#
# 然而,如果您删除全部内容,变基操作将会终止。
git log --oneline 


git rebase -i HEAD~2

s squash = use commit, but meld into previous commit

使用提交,但融入之前的提交

git push

合并多次提交




修改commit message

1.    git rebase -i  HEAD~1 
2.    键盘输入insert【i】(键盘按键i) 将pick改为e/edit ,esc(键盘按键),: wq (保存并退出)
3.  git commit --amend --message="thinker change message"
4. git rebase --continue
5. git push



以上是关于gitgit rebase 合并几个commit的主要内容,如果未能解决你的问题,请参考以下文章

git rebase -i 合并多次提交

巧用 git rebase 合并多个 commit。

GitGit如何合并某一次commit的内容到指定分支

git中merge和rebase的区别

git rebase 合并多个commit为一个commit

使用git rebase合并多次commit