【问题标题】:git merge ambiguous while merging two branches合并两个分支时git合并不明确
【发布时间】:2014-01-23 14:58:01
【问题描述】:

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

示例:

我正在检查localorigin 中可用的分支列表,方法是输入git 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 之间是否有任何不同。

【问题讨论】:

    标签: git git-branch git-merge


    【解决方案1】:

    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
    

    【讨论】:

      【解决方案2】:

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

      git log BRANCHNAME
      

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

      git branch -d BRANCHNAME
      

      【讨论】:

      • 你不能只做“git log BRANCHNAME”
      • @justintime 是的,感谢您指出这一点,我已经编辑了答案!
      【解决方案3】:

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

      Git 2.23(2019 年第二季度)将改进代码以显示带有潜在错字的 args,不能 被解释为 commit-ish。

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

      help_unknown_ref(): 检查引用名是否有歧义

      当用户要求合并“foo”而我们建议“origin/foo”时,我们只需从建议的 ref 前面去掉“refs/remotes/”即可。

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

      让我们使用shorten_unambiguous_ref() 以正确的方式执行此操作,即 通常应该产生相同的“origin/foo”,但如果是“remotes/origin/foo” 必要的。

      请注意,在这种情况下,可能还有其他选项(例如,我们也可以建议“heads/origin/foo”)。我将把它留待讨论;这里的重点是避免给出实际上没有达到我们预期的建议。


      在 Git 2.24 中,调用 help_unknown_ref() 会退出程序。

      参见René Scharfe (rscharfe)commit 80e3658(2019 年 8 月 29 日)。
      (由 Junio C Hamano -- gitster -- 合并于 commit 8e111e4,2019 年 9 月 30 日)

      【讨论】:

        猜你喜欢
        • 2021-01-18
        • 2011-09-20
        • 2014-09-23
        • 2013-05-23
        • 2019-04-15
        • 2013-04-11
        • 2012-03-02
        • 2013-10-01
        • 2012-03-05
        相关资源
        最近更新 更多