当我正在合并几个分支时,我不小心创建了一个分支而不是合并,
示例:
我正在通过输入local
来检查origin
和git branch
中可用的分支列表。但是我意外地执行了git branch origin/DEV66
(origin/DEV66
是我需要与分支test
合并的分支。)
合并分支test
和origin/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_893
和remotes/origin/GRNDEV_893
之间有任何不同。
答案 0 :(得分:4)
heads/
中的分支是您的存储库的本地分支,您使用git branch
或git checkout -b
在此克隆中创建了该分支。 remotes/
中的分支是远程跟踪分支,它们是与您一起更新的其他克隆的分支的只读副本,运行git fetch
或git 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 2ed2e19的commit 8ed51b0,Jeff 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
”)。我将把它留给辩论;此处的重点只是避免提供实际上没有达到我们期望的建议。