【问题标题】:Reverting a commit that is a duplicate of another commit from a different pull request还原与来自不同拉取请求的另一个提交重复的提交
【发布时间】:2016-06-12 22:38:16
【问题描述】:

感谢您邀请我加入 StackOverflow。

好的,所以我在分支上做了一些工作,提交了我的代码并发出了拉取请求。那天晚些时候,我创建了一个新分支,但我犯了一个错误,我从以前的分支而不是 master 创建了分支。所以我的新分支有旧分支的提交。在没有意识到自己做了什么的情况下,我开始编写代码,提交代码并发出拉取请求。意识到我的错误后,我进入了第二个分支并恢复了来自第一个分支的提交。

现在我的问题是:如果 QA 合并分支 1,然后合并分支 2,来自分支 1 的代码会被销毁,或者分支 2 的拉取请求将完全忽略我之前告诉您的提交,一切都会好起来的?

【问题讨论】:

  • 一切都不会好,该提交将被还原。您应该在 master 之上重新设置第二个分支以防止这种情况发生。

标签: git github merge


【解决方案1】:

与其恢复第二个分支上的提交,不如考虑重新定位以将其从历史记录中删除。这样你就不必想知道会发生什么。 :)

$ git rebase --onto master first-pr-branch

这告诉 git 你想要基于 master,但你当前基于你的第一个 PR 分支。这会将您的第一个 PR 分支的修订从您的历史中拼接出来。在此之后您需要强制推送,因为您正在重写历史记录,但是您将在 master 之上拥有一个干净的变更集。

【讨论】:

  • 谢谢。一个 git rebase --interactive HEAD~4 救了我,放弃了泄露的提交,现在一切都很好
猜你喜欢
  • 2018-05-14
  • 1970-01-01
  • 2013-06-26
  • 2016-11-24
  • 1970-01-01
  • 2013-07-31
  • 2013-11-27
  • 2018-06-07
  • 2018-06-21
相关资源
最近更新 更多