git 结帐警告:引用名称"14198"不明确


$ git checkout 14198
warning: refname '14198' is ambiguous.
Updating files: 100% (8963/8963), done.
Switched to branch '14198'
Your branch is up to date with 'origin/14198'.

为什么它警告";警告:refname"14198"不明确"??没有相同的名称标记或远程分支名称。

$ git branch -a | grep 14198
* 14198
IRS-14198
IRS-14198-API
IRS-14198-UI
remotes/origin/14198
remotes/origin/IRS-14198
remotes/origin/IRS-14198-API
remotes/origin/IRS-14198-UI

如果我运行";git-tag-l|grep 14198";,它什么也不回。因此,没有相同的名称标签。

为什么?

++++++++++++++++++++++++++++++++++感谢大家的回复。在此处附加更多输出:

运行git rev-list --all | grep 14198不返回任何结果。

$ git rev-list --objects --all | grep 14198
....
....multiple line outputs.
....only one line starts with 14198
14198841b0cb3735a412142617c8dd77844a4606 file/path/filename
....
....
$ git cat-file -t 14198841b0cb3735a412142617c8dd77844a4606
blob

这是一个blob(文件(,而不是提交。

++++++++++++++++++++++++++++++++哇!!谢谢大家!!

我测试它!!

如果分支名称与a-blob-id的前缀相同,gitcheckout将警告refname"xxxxx"不明确

$ git checkout 14198841b0cb3735a412142617c8dd77844a4606
fatal: reference is not a tree: 14198841b0cb3735a412142617c8dd77844a4606

$git结账14198841b0cb3735a412142617c8dd77844a4606致命:引用不是树:14198841b0cb3735a412142617c8dd77844a4606是blob的id(不是提交(。因此,签出失败。看起来像是git checkout中隐藏的错误警告消息。

++++++++++++++++++++++++已检查的git源代码

if (len == r->hash_algo->hexsz && !get_oid_hex(str, oid)) {
if (warn_ambiguous_refs && warn_on_object_refname_ambiguity) {
refs_found = repo_dwim_ref(r, str, len, &tmp_oid, &real_ref, 0);
if (refs_found > 0) {
warning(warn_msg, len, str);
if (advice_enabled(ADVICE_OBJECT_NAME_WARNING))
fprintf(stderr, "%sn", _(object_name_msg));
}
free(real_ref);
}
return 0;
}
./environment.c:33:int warn_on_object_refname_ambiguity = 1;

将warn_on_object_refname_ambiguity设置为1。不知道是否有命令行开关可以将其关闭。

忘掉。现在是凌晨0点36分。我要睡觉了。

谢谢大家!!

您有一个带有哈希的提交,该哈希以与您提供的分支名称相同的序列开始。

尝试运行git rev-list --all --abbrev-commit --abbrev=5。这将列出你的回购中的提交哈希(注意,如果你有很长的历史,这个列表可能会很大(。

您还可以grep您正在查找的哈希的引用列表。

$ git rev-list --all | grep 14198

在创建分支或标记之前,您还可以检查提交日志以了解它所指的内容:

$ git log -1 14198

它将始终显示引用分支或标记的提交(如果存在(,否则它将显示具有匹配哈希的提交。

根据@HelloKitty的评论,blob refs也会干扰。要搜索它们,请使用:

$ git rev-list --objects --all | grep 14198

最新更新