如何让git-svn使用特定的svn分支作为远程存储库?

时间:2008-10-10 19:26:44

标签: git svn repository branch git-svn

警告:我一般都是git的n00b。我的团队在svn中使用了功能分支,我想使用git-svn来跟踪我在特定功能分支上的工作。我(大致)按照Andy Delcambre's post设置了我的本地git回购,但这些说明似乎导致git选择了已更改最多的svn分支最近作为远程存储库;问题是,这不是我关心的分支。如何控制git-svn使用哪个分支?还是我接近这个完全错误的?

更新:我确实使用了-T-b-t选项(在我的情况下,因为svn repo有多个项目,但我想要{{ 1}} repo只包含我正在处理的项目。

4 个答案:

答案 0 :(得分:61)

Muchas gracias向Bart的博客提供了这个方便的reference for svn branches in git。显然我只需要在创建git分支时指定远程分支,例如

git checkout -b git-topic-branch-foo foo

其中foo是远程分支的名称。

答案 1 :(得分:30)

您可能还会看一下:git-svn is a gateway drug - robby on rails

当我需要确保我的本地分支指向正确的远程svn分支时,我使用了类似的东西:

git branch -r

获取我想要跟踪的远程分支的名称。然后

git reset --hard remotes/svn-branch-name

显式更改我的本地分支以指向不同的远程分支。

答案 2 :(得分:9)

我首先需要运行'git svn fetch',因为我想要关联的分支是在我的git客户端之后创建的。

答案 3 :(得分:1)

我使用git-svn但我没有使用与SVN分支互操作的功能。话虽如此,我注意到您所关注的教程没有使用-T, -b, -t选项来git svn init。这些选项告诉git-svn命名上游trunk / branches / tags目录,这在你的情况下可能很重要。