我已经对我的整个 repo 进行了 git-svn checkout(以标准git svn init -t tags -b branches -T trunk $repo_url
方式初始化,然后git svn fetch
ed)。我手动svn copy $repo_url/branches/branch1 $repo_url/branches/branch2
。然后我跑了git svn fetch
,,git checkout -b local-branch2 branch2
做了一些提交branch2
,dcommit
将它们编辑回 SVN 存储库,并完成了我的工作branch2
。(为什么要分支一个分支?我想在 git 中本地破解这个分支,但仍然提交回 SVN 并在我工作时从几个同事那里获得帮助)。
我没有做的是将branch2
工作合并回branch1
. 如果 I git checkout -b local-branch1 branch1
, then ,它只是将我的指针git merge branch2
快进到 where is。local-branch1
branch2
相反,我希望 git 重放自开始branch2
到 branch1 以来所做的所有提交,以便我可以将它们中的每一个提交到 SVN 存储库。似乎有办法做到这一点,但我想不出。也许git rebase
,或者git cherry-pick
每个提交的一个branch2
?(虽然后者有点乏味)。我宁愿不要 svn 将这两个 URL 合并在一起,因为那会造成很大的伤害。
想法?这其中的任何部分需要更多解释吗?