我使用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-svn,因为普通的git解决方案(例如git remote show origin
)不起作用。
修改
在仔细阅读我的问题后,我不确定这是否有意义。基本上我只是想知道哪个SVN分支'master'被绑定。我假设遥控器是分支机构,但它们实际上只是其他repos AFAIK的URL。所以,我真正想要的是远程SVN分支和远程SVN之间的映射。当地分公司。</ p>
答案 0 :(得分:1)
我真正想要的是远程SVN分支与远程SVN之间的映射。本地 分支。
答案是:没有(至少不是通常意义上的)。
详细说明:
通常,在git中你有两种类型的分支
本地分支可以链接到(和副本)远程跟踪分支(可能有更改) - 然后远程跟踪分支称为本地分支的“上游分支”。这个“上游关系”存储在repo配置(.git / config)中,并在git branch -vv
的输出中可见。
现在的问题是: git-svn没有上游分支的概念。
特别是,它不会在git配置中存储上游关系,因此像git branch -vv
这样的命令无法显示它。
git使用“上游分支”来决定从哪里拉出以及在哪里推送(或多或少;它是可配置的)。
相比之下,git-svn只是在本地分支的历史中回溯到来自SVN的最新提交(最新的提交带有“git-svn-id”)。该提交还将命名SVN分支(即SVN repo中的路径)(它是“git-svn-id”之后的字符串的一部分)。然后git-svn将使用该SVN分支。 中对此进行了描述请注意以下规则:git svn dcommit将尝试在顶部提交
中命名的SVN提交git log --grep = ^ git-svn-id: - first-parent -1
手册中没有注明,但我认为git svn rebase
使用了类似的规则。