【问题标题】:PR on master "messed" up my test branch, how do I fix it?大师上的公关“搞砸”了我的测试分支,我该如何解决?
【发布时间】:2016-05-03 01:12:50
【问题描述】:

我习惯使用 git。 我的正常工作流程是:

dev --> test --> master

我喜欢它,而且效果很好。

现在,在我与其他远程开发人员合作的项目中,我被指示在我们的公共存储库中包含其他人工作的拉取请求。

我收到了一封 PR 电子邮件,去了 github,快速检查后点击了合并按钮。然后我去了我的本地仓库,做了git pull origin master,新的变化出现在那里。一切都好。

但这里有一个问题。我最初被要求对一些受 PR 影响的文件进行更改。我曾在 dev 上工作,并推送到 test - 但不是 master

很自然,mastertest 存在差异。我想我可以通过在git checkout test 之后发出git merge master 来解决它们。

令我(最初)惊讶的是,我现在在test 中进行了两个更改——我的同事和我的同事,而git diff master 内部的test 显示了差异。

我现在明白了 - 我必须先转储我过时的更改。

已经担心,并且必须更新dev,它有当前的变化,我现在该如何解决?我可以撤消 test 上的合并并从头开始吗?

【问题讨论】:

    标签: git github merge pull-request


    【解决方案1】:

    我认为最适合您的方法是将 test 重新定位为新的 master

    git checkout test
    git rebase master -i
    

    您可以在变基期间删除过时的提交。

    【讨论】:

    • 感谢@Igal S.,这可能是一个很好的解决方案。但是在看到 rebase 交互式文件提交并看到我有不同的提交穿插,其中一些是我需要的,一些不是,我惊慌失措哈哈。我求助于手动......
    【解决方案2】:

    我只好手动完成。

    在最初的恐慌后平静下来后,我意识到更改很小,只影响了 5 个文件。

    所以我去了那里,将它们从 master 复制到 /tmp,签出 test 并重新复制它们。

    对于受影响的目录,mastertest 现在没有区别。唷。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-02
      • 2012-05-18
      相关资源
      最近更新 更多