变基过程:

  两个分支

  先考虑不用变基的合并:

$ git checkout master
$ git merge experiment

  合并后:

  如果变基:(以下为变基过程)

$ git checkout experiment
$ git rebase master conflict resolve $ git rebase --continue

  然后再合并:

$ git checkout master
$ git merge experiment

  一般我们这样做的目的是为了确保在向远程分支推送时能保持提交历史的整洁——例如向某个别人维护的项目贡献代码时。 在这种情况下,你首先在自己的分支里进行开发,当开发完成时你需要先将你的代码变基到 origin/master 上,然后再向主项目提交修改。 这样的话,该项目的维护者就不再需要进行整合工作,只需要快进合并便可。

  

  上述变基过程的另一种方式:

$ git rebase master experiment

confict resolve

$ git rebase --continue
$ git checkout master
$ git merge experiment

  这样省去先切换到experiment分支的过程。即便在另一个不相关的分支,也无须去先切换到experiment分支。( git rebase [basebranch] [topicbranch] )

git rebase --onto:

  假设你希望将 client 中的修改合并到主分支并发布,但暂时并不想合并 server 中的修改,因为它们还需要经过更全面的测试。 这时,你就可以使用 git rebase 命令的 --onto 选项,选中在 client分支里但不在 server 分支里的修改(即 C8 和 C9),将它们在 master 分支上重演:  

$ git rebase --onto master server client

conflict resolve

$ git rebase --continue

  以上命令的意思是:“取出 client 分支,找出处于 client 分支和 server 分支的共同祖先之后的修改,然后把它们在 master 分支上重演一遍”。

  然后,合并:

$ git checkout master
$ git merge client

git pull --rebase:

$ git pull --rebase

  等价于:

$ git fetch
$ git rebase origin/master

git变基--rebase的更多相关文章

  1. 开发中关于Git那些事(续:Git变基)

    其实上一篇写的内容仅仅是Git的冰山一角,如果你认为Git就是简简单单的几行命令,那只能说明你还没有真正了解Git这个强大的内容寻址文件系统.这篇文章,还是接着介绍一些实用但是很少有人知晓的一些命令, ...

  2. git变基、冲突解决

    参考git rebase 版本..变基 git冲突解决先fetch,pull,如果文件冲突,手动处理冲突文件,然后再fetch,pull,发现拉不下来,这时需要将文件改为已合并,然后提交文件 具体操作 ...

  3. git 变基(无卵用)

    在当前分支执行rebase即可,会将提交的记录变成一条直线 git rebase

  4. GIT学习笔记(5):变基

    GIT学习笔记(5):变基rebase 变基 引入变基 在Git中整合来自不同分支的修改主要有两种方法:merge以及rebase. 整合分支最容易的方法是merge,他会把两个分支的最新快照以及两者 ...

  5. 14.Git分支-rebase有趣的例子、变基带来的问题及解决方案

    1.有趣的变基例子 如下图所示,你创建了一个特性分支server,然后进行了一些提交(C3和C4),然后又从C3上创建了特性分支client,提交了C8和C9,最后你又回到了server,提交了C10 ...

  6. 13.Git分支-变基(rebase)、rebase VS merge

    1.变基的基本操作 在Git中整合来自不同分支的修改主要有两种方法:merge和rebase. 看下面的例子: 开发任务分叉到了两个不同的分支,并且都有了新的提交. 这时候我们可以使用 git mer ...

  7. git rebase(变基)操作

    1.rebase(变基)操作 注意事项:rebase 改变分支的根源,绝对不要在与其他人共享的分支上进行操作rebase黄金法则:绝不要在公共的分支上使用它! 1.1git merge 与 git r ...

  8. Git教程(7)用合并还是变基?

    合并或变基前的样子:分支experiment与master两个分支都产生了提交. 图1. 未合并或变基前的样子 合并 原理: 找到两个分支的最末提交和最近的共同祖先,在执行git merge时所处的分 ...

  9. git常用命令速查:创建,修改提交,撤销,切换分支,合并分支,变基解决冲突

    创建 $ git init  #在当前目录下创建一个空的本地仓库 $ rm -rf  .git  #删除本地仓库 $ git add .  #把当前目录下的所有文件添加到暂存区 $ git commi ...

随机推荐

  1. kali rolling 安装typecho

    #1 apt-get install nginx php7.0 php7.0-mysql php7.0-gd php7.0-cgi php7.0-cli php7.0-curl php7.0-fpm ...

  2. 关于:1.指针与对象;2.深浅拷贝(复制);3.可变与不可变对象;4.copy与mutableCopy的一些理解

    最近对深浅拷贝(复制)做了一些研究,在此将自己的理解写下来,希望对大家有所帮助.本人尚处在摸索阶段,希望各位予以指正. 本文包括如下方向的探索: 1.指针与对象: 2.深/浅拷贝(复制): 3.可变/ ...

  3. javascript keycode

    keycode    8 = BackSpace BackSpacekeycode    9 = Tab Tabkeycode   12 = Clearkeycode   13 = Enterkeyc ...

  4. String中的==与Empty

    1.String中的==与Equals方法执行结果一样吗? 我们都知道对于引用类型"=="比较的是引用而不是具体的值,但c#中有一种神奇的叫做操作符重载的东西.官方对String类 ...

  5. mysql for windows zip版安装

    1.将mysql_5.6.24_winx64.zip 解压到文件夹 2.增加环境变量 3.修改mysql配置文件 将mysql根目录下的my-default.ini 复制一份更名为 my.ini.修改 ...

  6. SpringMVC通过注解获得参数

    SpringMVC可以通过RequestParam注解来映射获得参数,具体用法如下: 例子: 配置过程省略 1.新建controller类 package com.loger.controller; ...

  7. redis 5 种数据结构

    常用命令 就DB来说,Redis成绩已经很惊人了,且不说memcachedb和tokyocabinet之流,就说原版的memcached,速度似乎也只能达到这个级别.Redis根本是使用内存存储,持久 ...

  8. QQ互联功能

    QQ作为现在使用人数最多的几个聊天软件之一,倘若能够方便的进行沟通(在大家的机器上都安装了QQ客户端或者浏览器的前提下),在商家推广的时候也许会带来不小的利益. http://wp.qq.com/in ...

  9. 离线消息如何实现?-- ESFramework 4.0 快速上手(02)

    在ESFramework 4.0 快速上手一文中,主要介绍了如何使用ESPlus.Rapid命名空间中的引擎来快速地构建基于TCP的网络通信系统,即使是使用ESPlus.Rapid来进行ESFrame ...

  10. Ubuntu环境变量——系统变量和用户变量

    系统变量: 对所有用户有效果 /etc/profile /etc/environment 两个命令只用一个就可以,原则上是重启后修改生效,但是经过验证可以通过执行以下命令实现: source /etc ...