繁体   English   中英

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

[英]git merge ambiguous while merging two branches

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

示例:

我正在通过输入git branch来检查localorigin可用的分支列表。 但不小心我已经执行了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之间有什么不同。

heads/ branches中的分支是您的存储库本地的分支,您使用git branchgit checkout -b在此克隆中创建了该git branch 在分行remotes/远程跟踪分支 ,它是只读的,从与您更新的其他克隆分支副本运行git fetchgit 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM