git rebase使用_020

栏目: 编程工具 · 发布时间: 6年前

内容简介:假设现在从这时候

git rebase 使用

rebase :顾名思义 ==变基==

假设现在从 master 分支上,切出一个本地开发分支 mydev

git checkout -b mydev

这时候 master 上的 git 记录是这样子的

A-->B-->C-->D

这个时候另外一个开发人员把ta的dev分支合并到master分支了

tadev

A-->B-->C-->D
            |-->E-->F-->G
  • 查看git记录
git lg or git log

实际上现在 master 上的分支的git 提交记录已经是这样子的了:

A-->B-->C-->D-->E-->F-->G

但是你本地上的分支还是这样的,你分别了提交了 3个 commit 记录。

|—->M-->N-->O
A-->B-->C-->D

这时,你的代码开发完成了,需要合并代码。这时候有两种选择:

直接

git merge

或者

经过 git rebase  再提交 git merge

git merge

如果直接 git merge ,假设你提交 commit 的时间和刚才合并进去的其他人的dev分支是有重合的:

A-->B-->C-->D
            |-->E       |-->F-->G
                |-->M-->N       |-->O

这样的提交的记录就比较乱,假设现在需要回退代码什么的,就有点小麻烦了,就需要一个文件去回退。对于多人协作的话 就比较需要 git rebase

git rebase

先对 mydev 分支进行 git rebase 操作

这时候分支的提交记录就会变为如下所示:

A-->B-->C-->D-->E-->F-->G
                        |-->M-->N-->O

会把 mydev 分支新增的 commit 记录新增在master分支最新的后面,这个时候 push 分支,就需要强制更新你的分支。再提交 merge

git push -f

变基的作用就是修整历史,将分支历史并入主线。

git rebase 注意事项

  • 确保没有其它分支同时更改同一个文件
  • git rebase 前需要确保 master 分支为最新。
  • 变基会修整历史,然后将分支历史并入主线,可以理解成美化过的历史,而合并则可以不修改历史,让分支历史依然独立存在,可以看作原始的历史。
  • 永远不要对已经推到主干分支服务器或者团队其他成员的提交进行变基,我们选择变基还是合并的范围应该在自己当前工作范围内。
  • 如果 git rebase 之后提示冲突的话,需要解决冲突:

    • 解决冲突后 add 更改的文件
    git add
    • 无需 commit , 继续 rebase
    git rebase --continue

git rebase 还有一些其他的操作,

  • 放弃 git rebase
git rebase --abort
  • 压缩最近几次提交
git rebase -i HEAD~4 合并最近4次提交

http://blog.codingplayboy.com...


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

游戏编程模式

游戏编程模式

Robert Nystrom / GPP翻组 / 人民邮电出版社 / 2016-9-1 / 61.4

游戏开发一直是热门的领域,掌握良好的游戏编程模式是开发人员的应备技能。本书细致地讲解了游戏开发需要用到的各种编程模式,并提供了丰富的示例。 全书共分20章,通过三大部分内容全面介绍了与游戏编程模式相关的各类知识点。首部分介绍了基础知识和框架;第二部分深入探索设计模式,并介绍了模式与游戏开发之间的关联;第三部分介绍了13种有效的游戏设计模式。 本书提供了丰富的代码示例,通过理论和代码示例......一起来看看 《游戏编程模式》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具