更新git-svn远程分支列表

时间:2010-01-25 21:01:10

标签: git svn branch git-svn

当我必须使用svn时,我使用git-svn与svn对话。我用标准的git svn clone -s行克隆了repo,当时所有的远程分支都在那里。

从那时起,一个新的分支已经创建,但不是由我创建的。我想在本地结帐/跟踪这个分支。我可以跟踪一个我能看到的分支(使用git branch -r),如下所示:

git checkout -t -b dev remotes/development

但这不适用于其他分支,因为它没有出现在git branch -r

如何跟踪这个缺失的分支?

3 个答案:

答案 0 :(得分:44)

运行以下命令后,您将能够在git端看到新分支:

$ git svn fetch
$ git svn rebase

确保您的分支首先是干净的。

答案 1 :(得分:10)

git svn rebase

将重新绑定当前分支,并且应在本地存储库配置中自动提取您指定的所有分支。

git svn fetch

将从您最初执行git svn克隆(包括新克隆)时所描述的SVN存储库中获取所有分支。这与

的行为形成对比
git fetch

仅获取您指定的分支,与 git svn rebase 一样。

这种差异主要是因为git无法“看到”SVN遥控器分支,直到它们被拉入本地存储库与克隆git存储库并且 git branch -a 显示全部远程分支(即使那些没有被跟踪/也不会被提取更新的分支)。

答案 2 :(得分:-2)

git svn rebase --fetch-all将解决此问题,请参阅man page

  

这从SVN获取修订版   当前HEAD和rebases的父母   当前(未提交到SVN)的工作   反对它。

     

[...]

     

这与svn update或git pull

类似      

[...]

     

这接受git svn fetch和git rebase accept的所有选项。但是,--fetch-all仅从当前[svn-remote]获取,而不是所有[svn-remote]定义。

:i:但它取出所有svn副本/分支