警告:我一般都是git
的n00b。我的团队在svn
中使用了功能分支,我想使用git-svn
来跟踪我在特定功能分支上的工作。我(大致)按照Andy Delcambre's post设置了我的本地git
回购,但这些说明似乎导致git
选择了已更改最多的svn
分支最近作为远程存储库;问题是,这不是我关心的分支。如何控制git-svn
使用哪个分支?还是我接近这个完全错误的?
更新:我确实使用了-T
,-b
和-t
选项(在我的情况下,因为svn
repo有多个项目,但我想要{{ 1}} repo只包含我正在处理的项目。
答案 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目录,这在你的情况下可能很重要。