使用git svn签出远程分支


188

我已经使用git svn签出了一个svn存储库。现在,我需要签出分支之一并对其进行跟踪。哪种方法最好?

Answers:


355

标准Subversion布局

创建一个git克隆,其中包括您的Subversion干线,标签和分支

git svn clone http://svn.example.com/project -T干线-b分支-t标签

--stdlayout如果您的Subversion存储库使用典型结构,则该选项是一个不错的快捷方式:

git svn克隆http://svn.example.com/project --stdlayout

使您的git仓库忽略Subversion存储库所做的一切:

git svn show-ignore >> .git / info /排除

现在,您应该能够在git端看到所有Subversion分支:

git分支-r

假设Subversion中的分支名称为waldo。在git方面,您可以运行

git checkout -b waldo-svn遥控器/ waldo

-svn后缀是避免形式的警告

警告:refname'waldo'不明确。

要更新git分支waldo-svn,运行

git checkout waldo-svn
git svn rebase

从仅中继的结帐开始

要将Subversion分支添加到仅中继的克隆,请修改您的git存储库.git/config以包含

[svn远程的“ svn-mybranch”]
        网址= http://svn.example.com/project/branches/mybranch
        取=:引用/远程/ mybranch

您需要养成跑步的习惯

git svn fetch --fetch-all

更新所有git svn认为独立的遥控器。此时,您可以如上所述创建和跟踪分支。例如,要创建与mybranch对应的git分支,请运行

git checkout -b mybranch-svn遥控器/ mybranch

对于您打算从中分支的分支git svn dcommit,保持其历史线性!


更多信息

您可能还对阅读相关问题答案感兴趣。


这对我不起作用,因为我已经使用git svn clone检出了主干。.我没有设置要检出的分支……我想我首先需要这样做。
markovuksanovic

事实是,我使用了git svn clone svn.example.com/project/trunk ,现在我不知道如何在不失去当前存储库的情况下设置要跟踪的其他分支……
markovuksanovic 2010年

20
我建议为您的svn遥控器提供一个前缀。(--prefix=svn/在执行git-svn init或时添加git-svn clone),这将消除在本地分支上添加后缀的需要。
jasonkarns 2011年

如果您有几个分支机构,别忘了做另一个分支机构之前做“ git checkout master”
Eildosa 2012年

如果show-ignore出现错误,请尝试git svn show-ignore -i trunk
Antti Haapala 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.