git checkout尝试检出提交而不是分支

3

在我的代码库中,我有一个名为1348的分支和一个哈希码以1348开头的提交。

当我执行git checkout 1348时,git会将我切换到该提交。如何指定切换到分支而不是提交?

git version显示如下:

git version 2.7.5


4
在我的系统上,执行 git checkout 403d 命令时(假设已经有一个名为 403d 的分支和一个名为 403dc38ef5b0ad9b102aca7159c2a77840f4ac2d 的提交),会出现警告信息:warning: refname '403d' is ambiguous. Switched to branch '403d'。我的 Git 版本是 2.14.1。 - Thomas
1
你使用的Git版本是什么?在2.14.1版本上,我收到了“warning: refname '5961' is ambiguous.” [5961是我构建的类似示例],但它确实切换到了分支,而不是其SHA具有该前缀的提交。 - trptcolin
git 版本 2.7.5 - Boris
但有时我也会收到这个警告,但仍然成功地将我切换到分支。今天是Git第一次选择提交的时候。 - Boris
1
一个简单的解决方法是给你的分支命名不同,例如 v1348r1348 - Thomas
显示剩余3条评论
1个回答

1
根据文档,git 首先查找分支,只有在没有找到分支的情况下才将参数解释为 SHA 前缀。因此有两种可能性:
1)您使用的版本与现在的版本不同,这种行为可能已经发生了改变;在这种情况下,您可以升级 git 版本。
2)您是否错误地认为该分支确实存在于这个名称中?
没有参数可以明确告诉 git 您指的是哪个分支。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接