前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >git rebase的使用

git rebase的使用

作者头像
企鹅号小编
发布2018-01-10 10:08:25
7190
发布2018-01-10 10:08:25
举报
文章被收录于专栏:企鹅号快讯企鹅号快讯

git rebase简单的作用就是合并,同git merge很类似,但是原理又跟git merge不同,下面我们来了解一下git rebase的作用:

1、合并多次commit

在开发过程中,我们要完成一个需求,首先我们会从远程仓库拉取一个相对干净的代码,比如测试环境分支develop,然后基于develop分支再创建一个自己本地的分支,代码如下:

创建自己的分支后,就在当前分支中完成自己的需求,完成后需要并自己测试无误后将自己的代码合并到develop分支再push到远程分支,代码如下:

当然上面讲述的事最基本的步骤,但是在实际开发过程中,可能完成一个需求时,我们可能不止一次的commit,可能有5,6个但是有些commit是不需要的,那我们想清理掉这些commit 该如何,那就可以在自己本地分支上使用git rebase -i,使用git log查看当前分支提交了多少个commit,假设在当前分支我有5次commit,我想把这五个commit合并为一个commit,代码如下:

执行后会跳出一个编辑框,大致如下

commands下面的7行是解释使用时应该填写那个字段来执行你的需求,在这里我们想合并commit但是保留commit的message,所以使用squash,启用vim,按一下a进入编辑,如下:

修改后esc键退出编辑,输入:wq保存并退出,如没冲突,会再次弹出一个编辑框,直接:wq保存退出即可,成功后git log就只会看到一个commit。这样在我们git push的时候就会看到相对比较干净的commit。

2、变基

在前面讲的时候我们5个commit只需要一个,但是有时候5个commit可能需要,那我们合并到develop的时候就会有5个commit,在开发过程中,有时候团队协会开发时,可能会出现好几个人都会修改远程develop分支的代码。

1、在使用merge的时候提交的commit会根据commit的时间来排序,也会生成一个merge的commit,查看commit的历史比较真实。

2、使用rebase提交时,rebase会将你提交的commit删除,复制新的commit放在develop分支后面,这样看起来就会跟没有合并一样

慎重:在使用git rebase的过程中,比较容易出现冲突,在与同事开发过程中最好不要将远程分支的commit用git rebase,也不要使用git pull --rebase,使用git merge更加可靠一些,因为可以git merge的一定可以git rebase,但是可以git rebase的不一定可以git merge

本文来自企鹅号 - 全球大搜罗媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 全球大搜罗媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档