繁体   English   中英

Git rebase to较旧的提交

[英]Git rebase to older commit

在去年开始和关闭项目之后,我已经设法让自己陷入了一个混乱的境地。 这是发生的事情:

  1. 开始生产版本。 我们称之为A

  2. 做了一些从未完成的重大功能变化。 无意中将此事交给了master分公司。 代码从未投入生产。 我们称之为提交B

  3. 几个月过去了,我需要在生产上做一些修补程序。 使用“ git checkout A . ”恢复为A提交,使我的修补程序更改然后在B上方的主分支上提交为C

  4. 想要完成提交B功能。 使用“ git checkout B -b featureBranch ”获取一个包含来自提交B所有未完成功能的新分支。 但是,我没有包含来自C修补程序。

如果我运行“ git rebase master ”,我的所有C提交修复都会被应用,但是我从提交B丢失了我的更改。

如何在不丢失B提交的情况下提交我的C提交更改?

最简单的方法是樱桃挑选( git cherry-pick ):

git checkout featureBranch
git cherry-pick C

如果稍后, featureBranch将简单地替换当前的master ,那将会有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM