2

我曾经使用 git 在不同分支之间移植功能,rebase, rebase --onto,cherry-pick是我使用的典型工具。但现在我必须使用 svn。我不喜欢使用 svn 的内置merge命令,因为它会将所有提交合并为一个“合并提交”,尽管在 1.5 之后具有一些历史可追溯性。假设我有从 r100 到 r110 in 的一系列提交branchA,现在我想将此功能移植到branchBbranchC通过使用相同的提交注释一一重播这些提交(解决两者之间的任何冲突)。是否有任何自动工具可以为我做到这一点?

4

2 回答 2

2

我不知道有任何自动化工具可以做到这一点,但您可以按照git rebase. 它所做的一切都是创建一个临时目录并用于git format-patch提取您想要变基的更改,然后git am将它们应用回目标根目录。如果您locate git-rebase在系统上键入,您可以阅读它——它是一个 shell 脚本。大概是吧/usr/local/libexec/git-core/git-rebase

svn等效项将使用andsvn diff保存svn log原始提交信息,后跟patchand svn commit

于 2011-02-01T22:07:30.977 回答
0

如果可以,请使用git-svn. 令人敬畏的git历史不会出现在中央存储库中,但您将有更好的时间来管理您的工作。

于 2011-02-01T21:57:37.343 回答