再次理解 git rebase

为什么说“再次”呢,因为之前有发过一篇 git rebase 的文章,如今刚好又要用到,发现不会使用了,而且当时的也理解不太对~


git rebase

是基准基变的意思,在原来的提交记录上可以变成任何你想要的的模样!(确实很强大)

我的使用场景 是将多个提交记录合并成一个提交记录

首先 理解几个git rebase时会用到的关于提交记录将变成怎样的参数

pick:按原样应用所选的提交。

edit:选择在应用此提交之前编辑受此提交影响的文件。

drop:忽略所选的commit,因此不会应用这些更改

squash:选择以将所选的提交与前一个相结合,两个提交的提交消息将被合并

reword:选择此选项以在应用提交消息之前编辑它。

fixup:选择此选项以将所选的提交与前一个提交相结合,修复提交的提交消息将被丢弃

值得注意的是
不能全部选择 drop commit,不然就没有需要改变的了
squashfixup 不能在第一个commit,因为他们需要与前一个commit配合

语法

git rebase -i HEAD~n #表示从最近一个提交开始数到第n个提交,n指数字
git rebase -i n m #表示从第n个提交到m个提交,nm指commit id

例子

假设觉得这个5个提交很多余,需要合并成1个
在这里插入图片描述
看操作

git rebase -i HEAD~5

在这里插入图片描述
其实一个控制台我们在这里不好编辑,其实这个文件是在
代码跟目录xxx/.git/rebase-merge/git-rebase-todo里的所以我们可以用编辑器打开更方便
在这里插入图片描述

在这里插入图片描述
保存后在命令台执行退出 :q
在这里插入图片描述
提交1 和提交2 冲突了需要解决一下

在这里插入图片描述
然后提交,继续

在这里插入图片描述
最后的结果
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部