我曾经使用 git 在不同分支之间移植功能,rebase
, rebase --onto
,cherry-pick
是我使用的典型工具。但现在我必须使用 svn。我不喜欢使用 svn 的内置merge
命令,因为它会将所有提交合并为一个“合并提交”,尽管在 1.5 之后具有一些历史可追溯性。假设我有从 r100 到 r110 in 的一系列提交branchA
,现在我想将此功能移植到branchB
并branchC
通过使用相同的提交注释一一重播这些提交(解决两者之间的任何冲突)。是否有任何自动工具可以为我做到这一点?
问问题
454 次
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
原始提交信息,后跟patch
and svn commit
。
于 2011-02-01T22:07:30.977 回答
0
如果可以,请使用git-svn
. 令人敬畏的git
历史不会出现在中央存储库中,但您将有更好的时间来管理您的工作。
于 2011-02-01T21:57:37.343 回答