git rebase,顾名思义,就是重新定义(re)起点(base)的作用,即重新定义分支的版本库状态。要搞清楚这个东西,要先看看版本库状态切换的两种情况:
举个例子来说吧!假设我们的项目初期只有一个master分支,然后分支上作过两次提交。这个时候系统只有一个master分支,他的分支历史如下: master0(初始化后的版本) 这个时候,我们可以通过git reset将master分支(工作目录、工作缓存或者是版本库)切换到master1或者master0版本,这就是前面所说的第一种情况。 master0(初始化后的版本) 然后,我们在这里以master1为起点,创建了另一个分支test。那么对于test分支来说,他的第一个版本test0就和master1是同一个版本,此时项目的分支历史如下: master0(初始化后的版本) 这个时候,我们分别对master分支、test分支作两次提交,此时版本库应该成了这个样子: master0(初始化后的版本) 首先,我们切换到master分支,然后运行下面的命令,即可实现我们的要求: 这个时候,git做了些什么呢? 此外,rebase还能够让你修订以前提交,这个功能日后再说。
||
v
master1(第一次提交后的版本)
||
v
master2(第二次提交后的版本)
假设我们这里把master分支通过git reset回溯到了master1状态。那么这个时候系统仍然只有一个master分支,分支的历史如下:
||
v
master1(第一次提交后的版本)
||
v
master1(第一次提交后的版本)===test0(test分支,初始化自master分支master1状态)
||
v
master1===test0==>test1===>test2
||
v
master2===>master3
1
git rebase test
发表评论
-
robots.txt 的作用及用法
2012-01-09 17:19 657http://shandian.biz/162.html -
git rebase 和reset 新的理解
2012-01-09 16:02 0http://ihower.tw/blog/archives/ ... -
Curl 用法
2012-01-09 15:13 762原始链接:http://www.linuxidc.com/Li ... -
Gnome3
2012-01-09 14:06 722Gnome3很但疼啊: 关机按钮:按住Alt 挂起=》 关机 ... -
vim
2012-01-08 21:24 0<!-- saved from url=(0045)ht ... -
Guake Terminal
2012-01-07 19:27 883ubuntu中/bin/bash与/bin/sh,区别较 ... -
修改Terminal的计算机名字
2012-01-03 21:55 0修改/etc/hostname /etc/hosts 两个文 ... -
Terminal is_a_funtion:找不到命令错误
2012-01-03 21:54 839Terminal is_a_funtion:找不到命 ... -
删除并重新安装ruby ,history
2011-12-23 18:28 16042155 cd ~/.rvm/ 2156 ll ... -
Ruby 对日期和content text 格式化的 helper
2011-11-17 17:22 525<% @news.each do |new| %& ... -
convert
2011-11-14 12:52 0ruby-1.8.7-p352 :003 > Gi ... -
11111111
2011-11-01 17:49 0rjust http://www.ruby-doc.org/ ... -
Ubuntu下 apache2+Phusion Passenger
2011-10-31 12:11 1305Ubuntu下 apache2+Phusion Passe ... -
(转载)Ubuntu下安装和配置Apache2
2011-10-28 15:34 1358原文:http://www.6yang.net/s ... -
.gitignore 和git pull
2011-10-28 10:08 2410在.gitignore档案中列出的档案名称将被忽略(注意:此 ... -
1111
2011-10-27 17:14 0class ZombiesController < ... -
Rails Controller的学习笔记
2011-10-27 14:02 0父类 ApplicationController : ... -
Convert png to gif
2011-10-27 10:25 1157require "tempfile" ... -
git:多个commit合并提交
2011-10-26 22:49 12284git:多个commit合并提交 学习ror和git有段 ... -
alias, alias_method和alias_method_chain
2011-10-24 16:50 01. alias Ruby里的关键字,用于定义方法或者 ...
相关推荐
前端大厂最新面试题-git rebase_ git merge.docx
merge主要发生在这样几个地方1 两个人同时开发一个分支,在拉取对方代码的时候2 要将代码合并到master的时候git pull origin master
主要介绍了详解git merge 与 git rebase的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Git Rebase(Visual Studio代码扩展) 使用键盘快捷键可以快速编辑交互式Git基准库的操作。 如何使用 按下与您所需的git rebase操作相对应的键。 此命令将应用于所有选定的行。 键盘快捷键: p将命令设置为“ ...
Rebase-editor, 一个专门用于Git交互式rebase的简单CLI应用
主要介绍了git rebase -i 修改历史提交的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了git rebase -i合并多次提交的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
通过此实验室/游乐场学习“ git rebase -i” 是否想学习如何正确使用git rebase -i (也称为交互式rebase)而又不会使您的生产仓库面临风险? 您来对地方了! 此仓库中包含的脚本将创建一个git仓库(带有2个克隆副本...
主要介绍了git rebase 成功之后如何撤销,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
git的实战操作,在上面使用git。详细教程使用!
主要介绍了解决使用commit提交大文件无法推送到远程库问题及git rebase使用详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
恐惧和厌恶 git rebase Git 不是 Subversion,我们可以自由地以任何我们认为合适的方式重写历史,这在生成原子提交和我们希望提交序列讲述一个故事时很重要。 许多人要么不知道这是可能的,要么害怕这样做,但基础...
gti详细的分支操作,在git中,可以使用git merge 和git rebase两个命令来进行分支的合并。 git merge 和git rebase在大体上都差不多,下文主要以git merge来例来讲解分支的合并流程。 如果你想了解分支合并的更多...
主要介绍了Git rebase命令使用实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了一不小心git rebase后出现(master|REBASE 1/10)的问题及解决办法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
git-rebase 我的个人仓库,用于练习rebase命令。
git rebase -i HEAD~n,n条commit进行rebase 将需要修改的commit信息,将pick命令改为 r 命令;ESC 输入 :wq 回车 开始修改commit信息,修改完,ESC 输入 :wq 回车 打印出成功 git log oneline -n,查看n条log信息,...
git-rebase-reword git-rebase-reword是一个简单的git命令,以与修改相同的方式来更改一个提交(最后一个或更旧的提交) 文献资料 它是基于对rebase交互操作的名称来命名的,以补充提交“ reword”。 参见和 -...
git视频教程.8.2.Git 命令 - git rebase.mp4 git视频教程.8.3.Git 命令 - git rebase.mp4 git视频教程.8.4.Git 命令 - git revert.mp4 git视频教程.9.Git 命令 - git apply、git am、git format-patch.mp4 git视频...