合并两个分支时git合并模糊

时间:2014-01-23 14:58:01

标签: git git-branch git-merge

当我正在合并几个分支时,我不小心创建了一个分支而不是合并,

示例:

我正在通过输入local来检查origingit branch中可用的分支列表。但是我意外地执行了git branch origin/DEV66origin/DEV66是我需要与分支test合并的分支。)

合并分支testorigin/DEV66

时,我遇到以下问题
warning: refname 'origin/DEV_66' is ambiguous.
warning: refname 'origin/DEV_66' is ambiguous.

键入git branch时会显示以下分支

GRNDEV_893
heads/origin/GRNDEV_893
remotes/origin/GRNDEV_893

如何解决这种歧义,分支heads/origin/GRNDEV_893remotes/origin/GRNDEV_893之间有任何不同。

3 个答案:

答案 0 :(得分:4)

heads/中的分支是您的存储库的本地分支,您使用git branchgit checkout -b在此克隆中创建了该分支。 remotes/中的分支是远程跟踪分支,它们是与您一起更新的其他克隆的分支的只读副本,运行git fetchgit pull

当您在两者中都有相同名称的分支时,您可以通过添加heads/remotes/前缀来消除歧义:

git checkout test
git merge remotes/origin/DEV_66

由于您错误地创建了heads/origin/DEV_66,因此您可以将其删除:

git branch -d heads/origin/DEV_66

答案 1 :(得分:0)

git branch -rv将显示包括远程分支在内的所有分支,并且提交每个分支当前都指向。您可以通过查看日志来进一步检查每个分支:

git log BRANCHNAME

如果某些分支相同并且您想删除它们,则可以使用

执行此操作
git branch -d BRANCHNAME

答案 2 :(得分:0)

Git 2.23(2019年第二季度)将改进代码以显示具有潜在错别字的args 解释为承诺。

请参见commit 2ed2e19commit 8ed51b0Jeff King (peff)(2019年5月14日)。
(由Junio C Hamano -- gitster --commit 8d32d25中合并,2019年6月13日)

  

help_unknown_ref():检查refname的歧义性

     

当用户要求合并“ foo”而我们建议“ origin/foo”时,我们可以通过简单地从建议的引用的前面切掉“ refs/remotes/”来实现。

     

通常可以,但是结果名称可能不明确(例如,您也有“ refs/heads/origin/foo”)。

     

让我们使用shorten_unambiguous_ref()来正确执行此操作,即   通常应产生相同的“ origin/foo”,但如果产生“ remotes/origin/foo”   

     

请注意,在这种情况下,可能还有其他选择(例如,我们也可以建议“ heads/origin/foo”)。我将把它留给辩论;此处的重点只是避免提供实际上没有达到我们期望的建议。