git rebase --onto 的奇妙用法

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

内容简介:开发项目的过程中,在特殊的大环境下,因为项目涉及到一些敏感的信息,项目方提出了需求,需要将现有的项目暂时修改,以适应当下的政策,但是过了这段时间还需要恢复,同时未恢复的这段时间,我们也实现了很多新的需求。如上图,紫色块是为了适应政策调整的,也就是以后恢复的时候要舍弃的部分。而白色块下方的黄色块就是我备份的,而等项目要恢复以后我们真的要需要的就是整个黄色块的流程。在备份的基础上,将所有后提交的黄色块对应的###感慨 每次用git的命令解决一个新的问题,都感觉发现了新大陆。。

开发项目的过程中,在特殊的大环境下,因为项目涉及到一些敏感的信息,项目方提出了需求,需要将现有的项目暂时修改,以适应当下的政策,但是过了这段时间还需要恢复,同时未恢复的这段时间,我们也实现了很多新的需求。如上图,紫色块是为了适应政策调整的,也就是以后恢复的时候要舍弃的部分。而白色块下方的黄色块就是我备份的,而等项目要恢复以后我们真的要需要的就是整个黄色块的流程。

解决方法

在备份的基础上,将所有后提交的黄色块对应的 commit 给合并过来,而我们强大的 git ,也有相应的命令可以处理。即

// base分支名称
// from待合并片段的起始commitId(不包含)
// to待合并片段的结束commitId(包含)
git rebase --onto base from to
复制代码

操作步骤

1.当前工作空间---分支A
2.从当前工作的分支新建一个分支,并且换到该分支----git checkout -b newbranch
3.git rebase --onto B 开始的commitId 结束的commitId
4.生成一个基于B分支和选择的提交区间的片段生成一个新的分支(detached Head)
5.从当前工作空间新建切换到一个新的分支---git checkout -b branch_bank
6.分支branch_bank的代码就是我们所需要的了
7.branch_bank强制覆盖A分支,切换到A分支,---git reset --hard origin branch_bank
8.代码就恢复正常啦
复制代码

###感慨 每次用git的命令解决一个新的问题,都感觉发现了新大陆。。


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

查看所有标签

猜你喜欢:

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

PHP and MySQL Web Development

PHP and MySQL Web Development

Luke Welling、Laura Thomson / Sams / July 25, 2007 / $49.99

Book Description PHP and MySQL Web Development teaches you to develop dynamic, secure, commerical Web sites. Using the same accessible, popular teaching style of the three previous editions, this b......一起来看看 《PHP and MySQL Web Development》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器