GIT:如何在还原合并后从分支中提取更改

时间:2015-08-21 11:16:10

标签: git github merge git-pull git-revert

我希望标题不会令人困惑。

历史(又名我做错了):

假设有两个分支,主要和特征。功能是一个分支,我保留一个较长的功能项目,并不时在该分支上使用git pull origin master来保持更新主代码的更新。

我偶然合并并将功能推入主人。

它还没有准备好,所以我试图恢复它。我试过以下:http://sethrobertson.github.io/GitFixUm/fixup.html#pushed_new_merge 但我想我做错了。我用了: git revert 然后提交了恢复并推动它。问题似乎已经解决了 - 该功能在不再掌握的情况下发生变化。

现在的问题是,当我尝试在功能分支上使用git pull origin master时,它会继续删除我的文件并恢复所有更改,因为它正在与revert-commit合并。主人的头是过去的那个恢复,我需要从更新的提交中拉出更改继续功能分支。

我用谷歌搜索了这个话题,最有希望的答案是: https://metlos.wordpress.com/2012/01/13/git-merging-after-a-revert/ 但是这里合并的方式与我想要的方式相反(功能要掌握,我需要掌握功能)。

我正在考虑创建master的clone分支,然后应用来自该分支上的链接的指令,这样我就能得到我需要的结果,但我担心这是一个临时的解决方案我需要随时应用我想要拉来自大师。

我最好为这个故事不要乱,如果有些事情不可理解我会澄清。

1 个答案:

答案 0 :(得分:3)

如果您还没有将master分支推送到团队/公共存储库,并且在掌握了master之后没有提交,那么您可以

git reset --hard **the-commit-before-pulling-feature-branch**
分支上的

。这将有效地消除历史上的错误,并提供一个干净的历史。

否则,(即如果你已经将master推送到repo或者对master做了更多提交),你可能会这样做

git revert **the-revert-commit**
拔出主站后

功能分支上,有效恢复还原提交。