在去年开启和关闭项目之后,我设法让自己陷入了一些混乱。这里发生了什么:
启动生产版本。我们称之为A
进行了一些从未完成的重大功能更改。意外地将其提交给master
分支机构。代码从未投入生产。我们将此提交称为B
。
几个月过去了,我需要在制作时制作一些修补程序。使用" git checkout A .
"要恢复为A
提交,请进行修补程序更改,然后在B
顶部的主分支上提交C
。
想要完成提交B
的功能。使用" git checkout B -b featureBranch
"从提交B
获取包含所有未完成功能的新分支。但是,我没有包含C
的所有修补程序。
如果我运行" git rebase master
",我的所有C
提交修复都会被应用,但我从提交B
中丢失了我的更改。
如何在不丢失C
次提交的情况下提交B
次提交更改?
答案 0 :(得分:3)
最简单的方法是挑选(git cherry-pick
):
git checkout featureBranch
git cherry-pick C
如果以后featureBranch
只是替换当前的master
,那将会有效。