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

Han*_*Gay 62 svn git branch git-svn repository

一句警告:git一般来说,我是一个n00b .我的团队使用了功能分支svn,我想用它git-svn来跟踪我在特定功能分支上的工作.我(大致)跟随Andy Delcambre的帖子来设置我的本地仓库git,但这些指令似乎导致git选择svn最近更改为远程存储库的分支; 问题是,这不是我关心的分支.如何控制哪个分支git-svn使用?或者我接近这个完全错误?

更新:我确实使用了-T,-b-t选项(在我的情况下,因为svnrepo有多个项目,但我希望gitrepo只包含我正在处理的项目).

Han*_*Gay 61

Muchas gracias到Bart的博客,为git中的svn分支提供了这个方便的参考.显然我只需要在创建分支时指定远程git分支,例如,

git checkout -b git-topic-branch-foo foo
Run Code Online (Sandbox Code Playgroud)

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

  • 如果你已经创建了你的git分支,你也可以使用`git rebase`将它重新绑定到svn分支上. (9认同)
  • Bart博客存档于archive.org:https://web.archive.org/web/20130119234635/http://www.jukie.net/~bart/blog/svn-branches-in-git (4认同)

小智 30

你可能也看看这个:git-svn是一个网关毒品 - robby on rails.

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

git branch -r
Run Code Online (Sandbox Code Playgroud)

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

git reset --hard remotes/svn-branch-name
Run Code Online (Sandbox Code Playgroud)

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

  • 为git重置+1 - 硬件 - 就在我之后:) (2认同)

and*_*sel 9

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