git svn fetch
如何运作?提取的分支在哪里,以便我可以与我的主人或其他分支合并或改组?获取数据的位置是因为git remote
在我的git svn
存储库中没有提供任何内容?
答案 0 :(得分:15)
这就是git svn fetch
的工作原理:
当使用git-svn
时,您没有 svn 服务器的远程,就像使用 git 时一样,只是在本地 .gitconfig 文件中有一个指向远程 svn 服务器的链接。
如果要将当前分支更新为最新修订版,可以使用git svn rebase
。但是如果你的svn项目很大,你可能会遇到不知道你最后一次修改是否成功的情况。如果你想更新到你确定是一个成功的版本的特定版本,例如你使用Jenkins为你提供最后一次成功的版本,你必须首先获取到你想要的版本然后使用提取的提交 rebase 。
为此你可以git svn fetch -r <revision>
。这将在本地获取提交,直到需要的修订。要重新定义提取的数据,您必须使用git svn rebase -l
或git svn rebase --local
。您不必在线进行本地变基。
答案 1 :(得分:1)
默认情况下,git-svn跟踪分支为remotes/git-svn
,您可以使用它在git svn fetch
提取的更改之上合并或修改您的工作。
答案 2 :(得分:-1)
遗憾的是,git-svn工具实际上并没有使远程SVN分支成真正的Git遥控器。它们看起来像遥控器,但它们实际上并不像遥控器那样起作用。 git-svn在内部跟踪分支,我也发现它有点令人沮丧。
然而,您可以从SVN分支分支或从它们合并。运行git branch -r
以查看所有远程跟踪分支,包括由git-svn创建的伪分支:
$ git branch -r
svn/SVNBranch1
svn/SVNBranch2
$ git checkout -b branch1 svn/SVNBranch1