$ 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