Git 实际上确实有符号引用,其中一个引用包含另一个引用的名称,而不是它的值。
直到最近,这些大多都不起作用,1除了HEAD
. mainHEAD
通常是对其他分支名称的符号引用。该git checkout
命令或git switch
Git 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最好当然是见仁见智,但既然我正在写这个答案,我就可以使用我的意见。:-)