Git 实际上确实有符号引用,其中一个引用包含另一个引用的名称,而不是它的值。
直到最近,这些大多都不起作用,1除了HEAD. mainHEAD通常是对其他分支名称的符号引用。该git checkout命令或git switchGit 2.23 及更高版本中的新命令为您管理此符号引用。
同时,到达远程,例如origin可以有一个象征性的HEAD,例如,origin/HEAD -> origin/master。你的 Git 根据它在 URL 上询问 Git(在本例中为 Git)时获得的结果来设置这些origin分支,它的 HEAD名称是什么。如果他们 HEAD是对他们 master的象征性引用,那么你origin/HEAD应该是对你的象征性引用origin/master。
但除了这些情况之外,每个引用都只包含一个原始哈希 ID。最好的2种绘制方法是绘制包含哈希 ID 的引用,或指向由该哈希 ID 选择的 Git 对象。只有符号引用应该被绘制为指向另一个引用。
1sym尝试创建包含刚刚创建的分支名称的符号分支br:
git branch br
git symbolic-ref refs/heads/sym refs/heads/br
列出分支git branch以确保它有效。现在让 Git 删除分支sym:
git branch -d sym
旧版本的 Git 会删除分支br!如果您的 Git 已删除sym,则您有一个 Git,这些符号引用在其中工作得更好。
2最好当然是见仁见智,但既然我正在写这个答案,我就可以使用我的意见。:-)