假设你现在基于远程分支"origin",创建一个叫"mywork"的分支。
$ git checkout -b mywork origin
现在我们在这个分支做一些修改,然后生成两个提交(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)
现在我们可以看一下用合并(merge)和用rebase所产生的历史的区别:
在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:
$ git rebase --continue
这样git会继续应用(apply)余下的补丁。
在任何时候,你可以用--abort
参数来终止rebase的行动,并且"mywork" 分支会回到rebase开始前的状态。
$ git rebase --abort
相关推荐
为了解决这一问题,开发者和系统管理员可能会使用一种名为“rebase”的工具,本文将深入探讨“rebase.exe”这一工具的用途、功能及其重要性。 首先,我们需要了解什么是“rebase”。在软件开发和系统维护中,...
**Node.js - Rebase-editor: 为Git交互式rebase打造的CLI工具** Git作为一款强大的版本控制系统,其丰富的功能让开发者在管理代码历史时有了极大的灵活性。在这些功能中,`git rebase` 是一个非常有用的命令,它...
Git 高级使用指南 - merge 和 rebase 的区别 在 Git 中,我们经常会遇到分叉的情况,特别是在多人协作时。当我们执行 `git merge` 命令时,commit 历史就会出现分叉,这种分叉再汇合的结构会让一些人觉得混乱而难以...
rebasee(变基)的上存方式是...我从网上查了很多资料,都没有记载很详细rebase在sourceThree是怎么用的一个过程,花了两天的时间研究一下,终于搞定了,当时连rebase是什么都不知道。 下面我会尽量的详细的说明白他。
rebase 重定位内存地址;早版本vc自带,但vs2012等都不带了;网上很难找到的。
Git_版本管理_#9_分支冲突_(rebase)_(教学_教程_tutorial)
在开发过程中,我们经常需要合并代码,而`git rebase`就是一种强大的工具,用于整理和优化提交历史,使其更加整洁。本文将深入探讨`git rebase`的原理和使用方法。 ### Git Rebase 基本概念 `git rebase`主要用于...
本文将深入探讨Git的两个关键功能——`merge`和`rebase`,以及它们在日常开发中的应用。 1. **Git的版本控制**:Git的核心功能是版本控制,它能够记录文件的每一次修改,包括修改的内容、作者和时间。这使得开发者...
git rebase 和 git merge 的理解与区别 Git 是一个版本控制系统,广泛应用于软件开发过程中。其中,git rebase 和 git merge 是两个常用的命令,都是用于合并分支,但是它们的实现机制和应用场景却有所不同。 git...
本主题“基于Ruby的MKS rebase脚本 Ruby语言基础”关注的是如何利用Ruby语言编写脚本来实现MKS(可能是指Mercurial或类似的版本控制系统)中的文件重定位功能,即rebase操作。 首先,我们需要理解MKS rebase的基本...
在 Git 中,`push` 和 `rebase` 是两个关键的操作,用于协同开发和维护代码库。本文将深入探讨这两个概念以及它们在不同场景下的应用。 首先,`git push` 是将本地分支的更改推送到远程仓库的过程。通常,我们遵循...
git rebase 命令可以将提交点放置在一条直线上,并根据提交时间进行排序。这是 git rebase 的一个常见用途。 当使用 git rebase 时,Git 会从指定的提交开始,重新应用后续的提交。这样可以将一系列提交重新排列,形成...
5. **终止rebase**:如果你发现rebase过程出错,或者想要完全放弃rebase操作,可以使用 `git rebase --abort` 来取消当前的rebase,这将恢复到rebase前的状态。 在描述中提到的错误情况,用户在尝试 `git push` 时...
**Python库 rebase-1.0.4-py3-none-any.whl** 在Python的世界里,库是开发者的重要工具,它们提供了丰富的功能,使我们能够更高效地编写代码。`rebase`是一个这样的库,版本号为1.0.4,专为Python 3设计,适用于...
然而,不当使用`git rebase`可能会导致问题,特别是当你已经完成了一个rebase操作后,可能需要知道如何撤销它。本文将详细介绍在`git rebase`成功后如何恢复到rebase前的状态。 `git rebase`的主要功能是将一个分支...
merge主要发生在这样几个地方1 两个人同时开发一个分支,在拉取对方代码的时候2 要将代码合并到master的时候git pull origin master
Git Rebase(Visual Studio代码扩展) 使用键盘快捷键可以快速编辑交互式Git基准库的操作。 如何使用 按下与您所需的git rebase操作相对应的键。 此命令将应用于所有选定的行。 键盘快捷键: p将命令设置为“ ...
git-rebase-reword git-rebase-reword是一个简单的git命令,以与修改相同的方式来更改一个提交(最后一个或更旧的提交) 文献资料 它是基于对rebase交互操作的名称来命名的,以补充提交“ reword”。 参见和 -...
用 rebase 吧 学习时长: 4分20秒 12 高级 2:刚刚提交的代码,发现写错了怎么办? 学习时长: 1分56秒 13 高级 3:写错的不是最新的提交,而是倒数第二个? 学习时长: 6分32秒 14 高级 4:比错还错,想直接丢弃刚写的...