[英]git merge ambiguous while merging two branches
当我正在合并几个分支时,我不小心创建了一个分支而不是合并,
示例:
我正在通过输入git branch
来检查local
和origin
可用的分支列表。 但不小心我已经执行了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
之间有什么不同。
heads/
branches中的分支是您的存储库本地的分支,您使用git branch
或git checkout -b
在此克隆中创建了该git branch
。 在分行remotes/
是远程跟踪分支 ,它是只读的,从与您更新的其他克隆分支副本运行git fetch
或git pull
。
如果两个分支都具有相同的名称,则可以通过包含heads/
或remotes/
前缀来消除歧义:
git checkout test
git merge remotes/origin/DEV_66
由于你错误heads/origin/DEV_66
创建了heads/origin/DEV_66
,你可以删除它:
git branch -d heads/origin/DEV_66
git branch -rv
将显示所有分支,包括远程分支,并提交每个分支当前指向。 您可以通过查看日志进一步检查每个分支:
git log BRANCHNAME
如果某些分支是相同的并且您想要删除它们,则可以使用它们
git branch -d BRANCHNAME
Git 2.23(2019年第二季度)将改进代码以显示具有潜在拼写错误的args,这些错误不能被解释为commit-ish。
见Jeff King( peff
) 提交2ed2e19 , 提交8ed51b0 (2019年5月14日) 。
(由Junio C gitster
合并- gitster
-在提交8d32d25 ,2019年6月13日)
help_unknown_ref()
:检查refname的歧义当用户要求合并“
foo
”并且我们建议使用“origin/foo
”时,我们只需从建议的ref的前面切掉“refs/remotes/
”即可。这通常很好,但结果名称可能不明确(例如,你也有“
refs/heads/origin/foo
”)。让我们使用
shorten_unambiguous_ref()
以正确的方式执行此操作,通常应该产生相同的“origin/foo
”,但必要时会产生“remotes/origin/foo
”。请注意,在这种情况下可能还有其他选项(例如,我们也可以建议“
heads/origin/foo
”)。 我会把它留给辩论; 这里的重点是避免提供实际上没有达到我们预期的建议。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.