Git:git svn如何获取工作?

时间:2013-07-02 15:19:36

标签: git git-svn git-merge git-rebase git-fetch

git svn fetch如何运作?提取的分支在哪里,以便我可以与我的主人或其他分支合并或改组?获取数据的位置是因为git remote在我的git svn存储库中没有提供任何内容?

3 个答案:

答案 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 -lgit 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