【发布时间】: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