我已经使用git svn检出了一个svn存储库。现在我需要检查其中一个分支并跟踪它。哪种方法最好?
答案 0 :(得分:341)
使用
创建一个包含Subversion主干,标签和分支的git克隆git svn clone http://svn.example.com/project -T trunk -b branches -t tags
如果您的Subversion存储库使用典型结构,则--stdlayout
选项是一个很好的快捷方式:
git svn clone http://svn.example.com/project --stdlayout
让你的git存储库忽略subversion repo所做的一切:
git svn show-ignore >> .git/info/exclude
您现在应该能够在git端看到所有Subversion分支:
git branch -r
说Subversion中的分支名称为waldo
。在git方面,你运行
git checkout -b waldo-svn remotes/waldo
-svn后缀是为了避免形式警告
warning: refname 'waldo' is ambiguous.
要更新git分支waldo-svn
,请运行
git checkout waldo-svn git svn rebase
要将Subversion分支添加到仅限主干的克隆,请修改您的git存储库的.git/config
以包含
[svn-remote "svn-mybranch"] url = http://svn.example.com/project/branches/mybranch fetch = :refs/remotes/mybranch
你需要养成跑步的习惯
git svn fetch --fetch-all
更新git svn
认为是单独的遥控器的所有内容。此时,您可以按上述方式创建和跟踪分支。例如,要创建与mybranch对应的git分支,请运行
git checkout -b mybranch-svn remotes/mybranch
对于您打算git svn dcommit
的分支,保持其历史线性!
您可能也有兴趣阅读answer to a related question。