Git:警告:使用git-svn时,refname'xxx'是不明确的

我使用git作为Subversion的前端(通过git svn)。

所以,对于每个svn trunk /分支,我都有一个名为“remotes / xxx”的远程分支。 例如“遥控器/行李箱”,“遥控器/酷炫”。

现在我想为每个远程分支都有一个“默认”本地分支,可以将它用于dcommit。 问题是我想要这样的分支以Subversion分支命名,比如“trunk”,“coolfeature”,所以我在git中有以下分支:

trunk coolfeature remotes/trunk remotes/coolfeature 

问题是每次我引用“trunk”或“coolfeature”git抱怨分支名称是模棱两可的。 没什么大不了的,但是我感到不舒服。

问题是,我怎么能处理这个警告,假设只是更名分支不是我想要做的。 这种情况下的最佳做法是什么?

如果你将--prefix=svn/标志传递给git svn clone命令,那么所有的Subversion分支将被命名为remotes/svn/branchname 。 如果这是可以接受的,它修复了“refname是不明确的”警告。 它也给你一个很好的方式来引用远程svn分支,例如,如果你想创build一个本地跟踪分支,它会是这样的:

$ git checkout -b branchname svn/branchname

然后本地分支与远程svn分支具有相同的名称,并且没有歧义的refname问题。

如果你只是想摆脱警告,将core.warnAmbiguousRefs设置为false

 git config --global core.warnambiguousrefs false 

如果只想为单个存储库执行此操作,请忽略--global标志。

你可能有另外一个“箱子”和“coolfeature”作为标签。 在这种情况下,git不知道是否引用分支或标记。 重命名标签,并检查git是否不报告“不明确”的名称

为了避免冲突信息,在引用本地分支时,以head/

例如,冲突的分支topic

 $ git diff topic remotes/topic warning: reframe 'topic' is ambiguous. ... 

 $ git diff heads/topic remotes/topic ...