使用git svn检出远程分支

时间:2010-07-13 17:31:42

标签: git git-svn

我已经使用git svn检出了一个svn存储库。现在我需要检查其中一个分支并跟踪它。哪种方法最好?

1 个答案:

答案 0 :(得分:341)

标准Subversion布局

使用

创建一个包含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