git pull -rebase和git pull的区别(Git紧急自救简易指南(五)——关于git rebase)

git rebase是一个相对来说独立一点的概念,我曾经纠结过是把git rebase放在日志这一节呢,还是单独开一节?

后来我想了一下,rebase是给那些有强迫症的同学用的,如果不用也不影响,所以我们就还是新开一节吧。

rebase可以简单理解成让我们的提交日志更漂亮 (前情回顾 git log 相关链接:Git紧急自救简易指南(二)——版本的游历)

git rebase使用场景之一:合并本地的提交日志


还是用我们之前git log的例子:我们往日志里添加1111,2222,3333,4444,5555



现在我们要推送到线上仓库,实际上别人并不关心我们做了几次操作,他们只要一个结果,你添加了1111~5555到readme中。

这个时候我们可以使用

git rebase -i hash值

比如说我们要合并1111~5555,这里的hash就是1111前面一条hash(注意一定要是前面的一条)


git pull

在弹出的确认信息中,从第二条开始至最后一条首字母改成s


s, squash = use commit, but meld into previous commit

squash:使用该 Commit,但会被合并到前一个 Commit 当中

然后再编辑下我们的日志,见证奇迹的时刻到了,我们的日志变成了这样:


完美的把日志从五条变成了一条


git rebase使用场景之二:合并pull时候产生的merge日志


git pull --rebase

首先先了解一个概念:

git pull ========> git fetch + git merge

git pull --rebase ========> git fetch + git rebase

也就是说,我们执行git pull的时候,实际上执行了两个操作,一个是fetch,另一个是merge,既然我们是要处理掉merge产生日志,那就不要merge动作好啦,我们在git pull后面加上一个 --rebase 参数,那么实际上我们执行的是fetch和rebase这两个动作,自然就不会有这样的困扰了

您可以还会对下面的文章感兴趣

最新评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友