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(注意一定要是前面的一条)
在弹出的确认信息中,从第二条开始至最后一条首字母改成s
s, squash = use commit, but meld into previous commit
squash:使用该 Commit,但会被合并到前一个 Commit 当中
然后再编辑下我们的日志,见证奇迹的时刻到了,我们的日志变成了这样:
完美的把日志从五条变成了一条
首先先了解一个概念:
git pull ========> git fetch + git merge
git pull --rebase ========> git fetch + git rebase
也就是说,我们执行git pull的时候,实际上执行了两个操作,一个是fetch,另一个是merge,既然我们是要处理掉merge产生日志,那就不要merge动作好啦,我们在git pull后面加上一个 --rebase 参数,那么实际上我们执行的是fetch和rebase这两个动作,自然就不会有这样的困扰了
最新评论