【问题标题】:GIT: How to pull changes from branch after a reverted mergeGIT:如何在恢复合并后从分支中提取更改
【发布时间】:2015-11-15 07:35:20
【问题描述】:

我希望标题不是很混乱。

历史(也就是我做错了什么):

假设有两个分支,master 和 feature。 Feature 是一个分支,我在其中保留了一个较长的特性项目,并且不时在该分支上使用 git pull origin master 来保持对主代码更改的更新。

我不小心将功能合并并推送到 master 中。

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

现在的问题是,当我尝试在功能分支上使用 git pull origin master 时,它会不断删除我的文件并恢复所有更改,因为它正在与 revert-commit 合并。主人的负责人已经过去了,我需要从较新的提交中提取更改以继续功能分支。

我用谷歌搜索了这个主题,最有希望的答案是: https://metlos.wordpress.com/2012/01/13/git-merging-after-a-revert/ 但这里的合并不是我想要的(功能要掌握,我需要主人来做特色)。

我正在考虑创建 master 的克隆分支,然后应用该分支上链接中的指令,以便获得所需的结果,但我担心这是一个临时解决方案,我需要随时申请来自主人。

我尽量不让这个故事变得混乱,如果有什么不明白的地方我会澄清。

【问题讨论】:

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


    【解决方案1】:

    如果您还没有将 master 分支推送到团队/公共存储库,并且您在 pull on master 后没有提交,您可以这样做

    git reset --hard **the-commit-before-pulling-feature-branch**
    

    master 分支上。这将有效地从历史中消除错误并提供干净的历史。

    否则,(即,如果您已经将 master 推送到 repo 或在 master 上进行了更多提交),您可以这样做

    git revert **the-revert-commit**
    

    feature 分支上拉出 master 后,有效地还原了 revert 提交。

    【讨论】:

    • 我已经推送了它并且已经进行了新的提交。您的解决方案就像一个魅力,起初我得到一个“无法恢复”的错误,但它只是一个需要手动合并的文件。非常非常感谢。
    • 如何在将主分支拉到我的功能分支时恢复“合并提交的恢复”?它需要一些父节点/分支。您能否在答案中也添加这部分?
    猜你喜欢
    • 2022-08-18
    • 2013-12-27
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 2021-11-03
    相关资源
    最近更新 更多