【问题标题】:Git: How does git svn fetch work?Git:git svn fetch 是如何工作的?
【发布时间】:2013-06-30 01:09:22
【问题描述】:

git svn fetch 是如何工作的?提取的那个分支在哪里,以便我可以与我的主分支或其他分支合并或变基?因为git remote 没有在我的git svn 存储库中给我任何信息,所以从哪里获取数据?

【问题讨论】:

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


    【解决方案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
    

    【讨论】:

    • You should be able to branch from the SVN branches or merge from them, however...怎么样?
    • @JacobKrieg 怎么样?这是科林回答的最后一行
    【解决方案2】:

    git svn fetch 是这样工作的:

    当使用git-svn 时,您没有使用 git 时的 svn 服务器的 remotes,您只有一个链接到本地​​ .gitconfig 文件中的远程 svn 服务器。

    如果您想将当前分支更新到最新版本,您可以使用git svn rebase。但是,如果您的 svn 项目很大,您可能会处于不知道最后一次修订是否成功构建的情况。如果您想更新到您确定是成功构建的特定修订版,例如您使用 Jenkins,它会为您提供最后一次成功构建,您必须首先 fetch 到您想要的修订版然后 rebase 与提取的提交。

    为此,您可以git svn fetch -r <revision>。这将在本地获取提交,直到想要的修订。要重新定位获取的数据,您必须使用git svn rebase -lgit svn rebase --local。您不必在线进行本地变基。

    【讨论】:

      【解决方案3】:

      默认情况下 git-svn 跟踪分支是 remotes/git-svn,您可以使用它在 git svn fetch 获取的更改之上合并或重新调整您的工作。

      【讨论】:

      • 我不敢苟同,似乎 git-svn 通常会从 git 中的 svn repo 重新创建分支和标签,所以你最终会在肠道 repo 中有许多分支(可能),所有跟踪都在一些形成 svn 分支
      猜你喜欢
      • 1970-01-01
      • 2019-05-28
      • 2019-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多