git rebase原理(转)

git rebase 不会取回代码 要用git fetch先取回, git rebase 是合并代码。

(1)首先用git fetch返回服务器上的代码

(2)首先用git rebase origin/master 合并

(3)如果发生冲突了会提示, 然后可以使用git diff查看冲突, 在手工改掉冲突, 在用git add ‘文件名’ 添加修改后文件,最后用git rebase --continue继续没完成的合并

(4)最后就可以用git push 更新到服务器上去。


转自: http://blog.chinaunix.net/uid-26952464-id-3352144.html

Git Community Book 中文版书上,摘录如下:
一、基本
git rebase用于把一个分支的修改合并到当前分支。
假设你现在基于远程分支"origin",创建一个叫"mywork"的分支。
$ git checkout -b mywork origin
假设远程分支"origin"已经有了2个提交,如图
现在我们在这个分支做一些修改,然后生成两个提交(commit).
$ vi file.txt
$ git commit
$ vi otherfile.txt
$ git commit
...
但是与此同时,有些人也在"origin"分支上做了一些修改并且做了提交了. 这就意味着"origin"和"mywork"这两个分支各自"前进"了,它们之间"分叉"了。

在这里,你可以用"pull"命令把"origin"分支上的修改拉下来并且和你的修改合并; 结果看起来就像一个新的"合并的提交"(merge commit):

 
但是,如果你想让"mywork"分支历史看起来像没有经过任何合并一样,你也许可以用 git rebase:
$ git checkout mywork
$ git rebase origin
这些命令会把你的"mywork"分支 里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把"mywork"分支更新 为最新的"origin"分支,最后把保存的这些补丁应用到"mywork"分支上。
当'mywork'分支更新之后,它会指向这些新创建的提交(commit),而那些老的提交会被丢弃。 如果运行垃圾收集命令(pruning garbage collection), 这些被丢弃的提交就会删除. (请查看 git gc)
二、解决冲突
rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:
git rebase --continue
这样git会继续应用(apply)余下的补丁。
在任何时候,你可以用--abort参数来终止rebase的行动,并且"mywork" 分支会回到rebase开始前的状态。
git rebase --abort
三、git rebase和git merge的区别
现在我们可以看一下用合并(merge)和用rebase所产生的历史的区别:
当我们使用Git log来参看commit时,其commit的顺序也有所不同。
假设C3提交于9:00AM,C5提交于10:00AM,C4提交于11:00AM,C6提交于12:00AM,
对于使用git merge来合并所看到的commit的顺序(从新到旧)是:C7 ,C6,C4,C5,C3,C2,C1
对于使用git rebase来合并所看到的commit的顺序(从新到旧)是:C7 ,C6‘,C5',C4,C3,C2,C1
 因为C6'提交只是C6提交的克隆,C5'提交只是C5提交的克隆,
从用户的角度看使用git rebase来合并后所看到的commit的顺序(从新到旧)是:C7 ,C6,C5,C4,C3,C2,C1

转载于:https://www.cnblogs.com/wlemory/p/4595908.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405630.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

How to uninstall Internet Explorer 7

How to uninstall Internet Explorer 7 http://support.microsoft.com/kb/927177/en-us (1)如果没有安装SP3,请参考下文。 (2)如果安装SP3,请参考http://support.microsoft.com/kb/950719/en-us You cannot uninstall Internet Explorer 7 or Internet E…

前端小知识点(7):正则前瞻

目录 一、js中的正则表达式,只有前瞻没有后顾 正向前瞻:(?) 》匹配符合的 代码1 结果1 代码2 结果2 一、js中的正则表达式,只有前瞻没有后顾 正向前瞻:(?) 》匹配符合的 负向前瞻:(?!) 》匹配不…

c语言编译生成cpp,C语言的编译过程

编译: 编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。流程:C源…

VC++ 读取和保存文件对话框及默认目录

From: http://blog.csdn.net/miaoshengwu/article/details/1627283 void Openfile() {// TODO: Add your control notification handler code here//显示文件打开对话框CFileDialog dlg(TRUE, "EC", "*.aes", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, &qu…

设置启用树莓派的HDMI显示

树莓派所有的启动初始化都是在config.txt中完成的,因此,若插入HDMI树莓派没有显示桌面,则是没有配置HDMI。 首先在找到config.txt,两种方法: 第一种方法,将SD卡取出,用读卡器在windows上找到&…

c语言程序报告基本数据类型,C语言程序设计试验报告-基本数据类型和表达式-范本9(8页)-原创力文档...

PAGE安庆职业技术学院电子信息系实验报告(C语言程序设计)实验序号:第 1次实验名称:基本数据类型和表达式实验日期:实验成绩:90一、实验目的及要求(本次上机实践所涉及并要求掌握的知识点。)1.掌握C语言数据类型的种类和作用&#…

易经初学体会

易经初学体会 易经的占卜过程像是在做游戏,会让人对本来崇拜的神秘易经产生怀疑, 其实易经的占卜的推导过程是有科学依据的,是在长期实践和科学验算的过程中总结的公式,是古人对统计学的运用和总结,就像我们很难怀疑数…

前端小知识点(8):作者为什么设计原型

目录 一、从古代说起 二、Brendan Eich的选择 三、new运算符的缺点 四、prototype属性的引入 五、总结 六代码部分 一、从古代说起 要理解Javascript的设计思想,必须从它的诞生说起。 1994年,网景公司(Netscape)发布了Navi…

Windows 文件同步方案讨论

在日常运维工作中,经常会遇到这样的情况:我们需要在无人值守的情况下完成文件、文件夹的同步过程,已实现周期性的备份,避免单点故障。本研究实现了本地Windows主机与远程Windows主机,本地Windows主机与远程Linux主机目…

vs2008打开vs2010工程项目

From: http://blog.csdn.net/sonicrang/article/details/7387676 http://blog.csdn.net/godson_h/article/details/6575874 由于软件的向下兼容,vs2010可以打开vs2008项目,但是vs2008打开vs2010时会出现一些错误提示。解决办法如下:1. 替换…

递归求和的复习-计算m~n整数和

题目&#xff1a;实现一个计算m~n&#xff08;m<n&#xff09;之间所有整数的和的简单函数。 说明&#xff1a;接口函数int sum(int m, int n); 输入已经保证m < n. 采用递归算法来实现&#xff0c;其他类似&#xff0c;复习一下递归算法&#xff1a;1、退出条件 2、递…

c#语言float转换int,C#Float表达式:将结果float转换为int时的奇怪行为

我有以下简单代码&#xff1a;int speed1 (int)(6.2f * 10);float tmp 6.2f * 10;int speed2 (int)tmp;speed1并且speed2应该具有相同的值&#xff0c;但实际上&#xff0c;我有&#xff1a;speed1 61speed2 62我知道我可能应该使用Math.Round而不是强制转换&#xff0c;但…

前端小知识点(9):函数和对象之间的关系

目录 函数与对象之间的关系 代码演示 运行结果 函数与对象之间的关系 函数 有什么 &#xff1a; 函数也是对象 函数有&#xff1a;prototype 对象 有什么 对象&#xff1a;__proto__ 原型对象里面有什么&#xff1a;constructor 代码演示 //fun是一个函数&#xf…

【DICOMDIR专题】DICOMDIR基础知识及常见问题汇总

很多网友希望论坛能够出一些更专业、更细分的小专题&#xff0c;DICOMDIR就是目前需求量较大的专题之一。所以&#xff0c;结合网友所需&#xff0c;与几个关心此内容的朋友一起努力&#xff0c;做了一个小专题&#xff0c;希望对你有一些帮助&#xff5e;&#xff5e;DICOMDIR…

struct sockaddr_nl 结构体 由来、含义以及使用——获取Linux路由表

From: http://yangelc.blog.sohu.com/68245920.html Linux 用户态与内核态的交互 在 Linux 2.4 版以后版本的内核中&#xff0c;几乎全部的中断过程与用户态进程的通信都是使用 netlink 套接字实现的&#xff0c;例如iprote2网络管理工具&#xff0c;它与内核的交互就全部使用了…

Ubuntu 14.10 下运行进程实时监控pidstat命令详解

简介 pidstat主要用于监控全部或指定进程占用系统资源的情况&#xff0c;如CPU&#xff0c;内存、设备IO、任务切换、线程等。pidstat首次运行时显示自系统启动开始的各项统计信息&#xff0c;之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数…

Linux 给Qt应用软件创建图标启动

一、描述 Ubuntu源码编译安装Eclipse和Qt后&#xff0c;没有自动创建图标&#xff0c;每次启动需要进入到目录下运行脚本&#xff0c;比较麻烦。 可通过创建类似于windows系统的快捷方式进行快捷启动。 快捷方式一般以.desktop后缀命名&#xff0c;并保存到/usr/share/appli…

scheme解释器 C语言实现,使用Scala写了个简单的Scheme解释器

大家好&#xff0c;我使用scala实现了个简单的解释器&#xff0c;能够实现整数的加减乘除。我是照着快学 19章的 3 - 4 * 5 这个例子做的。思路也是按照它的来的。大概是这样 1)首先定义 factor是整数2)那么 term &#xff1a; ( factorfactor...) 就是一个完整的表达式了3) …

Android 的用户层 uevent处理机制

From: http://blog.csdn.net/linphusen/article/details/5667647 摘录几篇android研发日志 1 http://blog.csdn.net/linweig/archive/2010/06/01/5640697.aspx Firmware 加载原理分析&#xff0d;&#xff0d;&#xff0d;&#xff0d;分析的比较透彻&#xff0c;我在wifimod…

前端小知识点(10):原型链

目录 原型链 : 代码1 运行结果1 代码二 运行结果2 原型链 : 每一个对象都有一个原型&#xff08;__proto__&#xff09;&#xff0c;这个原型还可以拥有自己的原型&#xff0c;形成最终的原型链。 查找一个对象特定的属性或者方法&#xff0c;我们先去当前对象中找&#xff…