你如何轻松地在Subversion/git中取消主题分支?

Mar*_*las 9 svn git version-control workflow

所以我有/trunk,所有金色的东西最终都归于此.我有一个主题分支,/topicA.

通常,您将合并/topicA到主干,它将是一个提交.万岁!要撤消此合并,您只需反向合并此合并引起的提交.十分简单.

现在,让我们说我已经/topicA将它合并到/trunk......然后我有一个与之相关的错误修正/topicA.那么,我应该/topicA再次承诺吗?我甚至可以重新emerge /topicA使/trunk包含/topicA.但是如何/topicA轻松地回滚所有原创作品和错误修正?

提交历史:

  • 致力于 /topicA
  • 致力于 /topicA
  • 致力于 /topicA
  • ...
  • 合并/topicA/trunk
  • ...
  • Bugfix1到 /topicA
  • 重新/topicA进入/trunk错误修正
  • ...
  • Bugfix2来了 /topicA
  • Bugfix3到 /topicA
  • 重新/topicA进入/trunk错误修正
  • ...
  • ??? (unmerge /topicA,包括错误修正)

我知道你可以解开每个错误修复然后初始合并,但这看起来并不性感.

git也有答案吗?

X-I*_*nce 0

如果您同时没有合并任何其他工作,您可以将git reset --hard <sha-1>工作树重置回较旧的时间,然后重新合并topicAtrunk.