我已经对我的整个 repo 进行了 git-svn checkout(以标准git svn init -t tags -b branches -T trunk $repo_url方式初始化,然后git svn fetched)。我手动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-branch1branch2
相反,我希望 git 重放自开始branch2到 branch1 以来所做的所有提交,以便我可以将它们中的每一个提交到 SVN 存储库。似乎有办法做到这一点,但我想不出。也许git rebase,或者git cherry-pick每个提交的一个branch2?(虽然后者有点乏味)。我宁愿不要 svn 将这两个 URL 合并在一起,因为那会造成很大的伤害。
想法?这其中的任何部分需要更多解释吗?