繁体   English   中英

我的本地git-svn分支绑定到哪些远程分支?

[英]Which remote branches are my local git-svn branches bound to?

我在使用git-svn的克隆存储库中有以下.config文件:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    hideDotFiles = dotGitOnly
[svn-remote "svn"] 
    url = https://svn.domain.com:8443/svn
    fetch = trunk:refs/remotes/trunk
    branches = branches/{some_branch}:refs/remotes/branches/*

当我做git branch -a ,我得到:

$ git branch -a
* master
  remotes/branches/some_branch
  remotes/trunk

我怎么知道本地master分支绑定到哪个远程(跟踪)? 注意,由于正常的git解决方案(例如git remote show origin )不起作用,因此此答案似乎必须特定于git-svn。

编辑
在仔细阅读了我的问题之后,我不确定它是否有意义。 基本上我只是想知道绑定到哪个SVN分支“ master”。 我以为遥控器是分支机构,但实际上它们只是其他回购协议AFAIK的URL。 所以,我真正想要的是远程SVN分支与本地分支之间的映射。

我真正想要的是远程SVN分支与本地分支之间的映射。

答案是:没有(至少不是通常意义上的)。

详细说明:

通常,在git中,您有两种类型的分支

可以将本地分支链接到远程跟踪分支(及其副本)(可能会进行更改),然后将远程跟踪分支称为本地分支的“上游分支”。 此“上游关系”存储在repo config(.git / config)中,并且在git branch -vv的输出中可见。

现在的事情是: git-svn没有上游分支的概念

特别是,它不在git config中存储上游关系,因此git branch -vv类的命令无法显示它。

git使用“上游分支”来决定从何处提取和向何处推送(或多或少;它是可配置的)。

相比之下,git-svn只是追溯到本地分支的历史,而回溯到来自SVN的最新提交(带有“ git-svn-id”的最新提交)。 该提交还将命名其创建的SVN分支(即SVN存储库中的路径)(它是“ git-svn-id”之后的字符串的一部分)。 git-svn然后将使用该SVN分支。

这在git-svn手册页中进行了描述:

请注意以下规则:git svn dcommit将尝试在名为的SVN提交之上进行提交

混帐日志--grep = ^ git-svn-id:--first-parent -1

手册中没有对此进行说明,但我相信git svn rebase使用类似的规则。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM