当我必须使用svn时,我使用git-svn与svn对话。我用标准的git svn clone -s行克隆了repo,当时所有的远程分支都在那里。
从那时起,一个新的分支已经创建,但不是由我创建的。我想在本地结帐/跟踪这个分支。我可以跟踪一个我能看到的分支(使用git branch -r),如下所示:
git checkout -t -b dev remotes/development
但这不适用于其他分支,因为它没有出现在git branch -r
中如何跟踪这个缺失的分支?
答案 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副本/分支