【问题标题】:Undo git merge of master into feature撤消 git merge 将 master 合并到 feature
【发布时间】:2014-12-04 17:03:09
【问题描述】:

我有两个分支:Master 和 Feature。

我对 Master 进行了一些更改,并希望将它们复制到 Feature 中。所以我将Master合并到Feature中。显然,这是错误的做法,因为现在对 Feature 的先前更改出现在 Master 中。

What I expected:
A - B - - - - E - G   [master]
     \         \
      C - D - - F - H [feature]

What it looks like now:
                      G   [master] 
                     /
A - B - C - D - E - F - H [feature]

这是有趣的部分:在注意到问题之前,我将 Master 合并到 Feature 中两次,并且我已经对两个分支进行了额外的提交。如何撤消合并或使其不受 Feature 提交的影响?

【问题讨论】:

  • 这不是答案,而是对未来的建议。不要将master 合并到feature,而是使用git rebase。例如,一旦您在 feature 分支 (git checkout feature) 上,您将调用 git rebase master,这将应用在 master 但尚未在 feature 中的更改。有关合并和变基的更多信息,请参阅this page
  • 您的 ASCII 图形不清楚/不明确。请阅读this answer of mine顶部的备注,并更正您的图表,以便我们准确知道您的分支指向的位置。
  • @hunch_hunch 这样说这是危险的建议。如果特性分支被推送到某个地方并且其他人在它上面工作怎么办?变基仍然是一项高级功能。首先应该掌握简单的合并。
  • 请包含您为执行合并而键入的命令。根据您的描述,您的图表仍然没有意义。
  • 如果您将 Master 合并到 Feature 中,那么您将不会看到 Feature 出现在 Master 中的变化。我怀疑你完全做了其他事情(尽管很可能是无意和/或没有意识到......)。

标签: git merge git-revert


【解决方案1】:

鉴于您在问题中绘制的树,您希望从 master 撤消提交 C、D 和 F。为此,请在命令提示符下键入:

git checkout master
git revert C
git revert D
git revert F

【讨论】:

    猜你喜欢
    • 2018-01-23
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 2022-12-17
    相关资源
    最近更新 更多