如何git svn fetch
工作?提取的那个分支在哪里,以便我可以与我的主分支或其他分支合并或变基?git remote
因为在我的存储库中没有给我任何东西,所以从哪里获取数据git svn
?
3 回答
这是如何git svn fetch
工作的:
使用时,您git-svn
没有使用git时的远程svn服务器,您只需在本地.gitconfig文件中有一个到远程svn服务器的链接。
如果您想将当前分支更新到最新版本,您可以使用git svn rebase
. 但是,如果您的 svn 项目很大,您可能会处于不知道最后一次修订是否成功构建的情况。如果您想更新到您确定是成功构建的特定修订版,例如您使用 Jenkins,它会为您提供最后一次成功构建,您必须首先获取您想要的修订版,然后使用获取的提交进行rebase .
为此,您可以git svn fetch -r <revision>
。这将在本地获取提交,直到想要的修订。要对获取的数据进行变基,您必须使用git svn rebase -l
或git svn rebase --local
。您不必在线进行本地变基。
默认情况下 git-svn 跟踪分支是remotes/git-svn
,您可以使用它在git svn fetch
.
不幸的是,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