TL;DR:保存和删除标签,如Ashutosh Jindal 评论(请参阅“在 git 中重命名标签? ”):
git tag tag-master master
git tag -d master
原答案:
我看到的大多数来源(如这个常见问题解答)都指向相同的原因:
  当您尝试结帐本地分支时,您会得到一个
warning: refname 'branch-name' is ambiguous
  如果您创建了一个与远程标签同名的本地分支,就会发生这种情况。
  Git 应该检出你的本地分支,但它却试图检出标签,它会感到困惑。
  
  几棵树的初始导入是有问题的,因为它们包含同名的分支和标签。从那以后,我们通过重命名标签解决了很多这些问题。
在您的情况下,您没有远程,但是像您的分支一样命名的本地标签就足够了。
歧义在gitrevision中指定
<refname>, 例如master, heads/master,refs/heads/master
  一个符号引用名称。例如master,通常表示 . 引用的提交对象refs/heads/master。
  如果你碰巧同时拥有heads/masterand tags/master,你可以明确heads/master告诉 git 你指的是哪一个。
  当<refname>有歧义时,通过以下规则中的第一个匹配来消除 a 的歧义:
  
  如果$GIT_DIR/<refname>存在,这就是你的意思(这通常只对HEAD, FETCH_HEAD, ORIG_HEAD,MERGE_HEAD和有用CHERRY_PICK_HEAD);
  
  
  - 否则,
refs/<refname>如果存在; 
  - 否则,
refs/tags/<refname>如果存在; 
  - 否则,
refs/heads/<refname>如果存在; 
  - 否则,
refs/remotes/<refname>如果存在; 
  - 否则,
refs/remotes/<refname>/HEAD如果它存在。 
  
因此,请检查在您的存储库中master可以找到的位置。
并且git checkout heads/master永远有效。
警告:默认情况下,这会以DETACHED HEAD 模式检出分支。请参阅“为什么git checkout使用显式 ' refs/heads/branch' 会给出分离的 HEAD? ”。
为避免这种情况,并且仍然使用明确的 ref,请键入:
git checkout -B master heads/master