Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.43.1 → 2.46.2 no changes
- 2.43.0 11/20/23
- 2.39.1 → 2.42.3 no changes
- 2.39.0 12/12/22
- 2.1.4 → 2.38.5 no changes
- 2.0.5 12/17/14
概述
git symbolic-ref [-m <原因>] <名称> <引用> git symbolic-ref [-q] [--short] [--no-recurse] <名称> git symbolic-ref --delete [-q] <名称>
描述
给定一个参数,读取给定符号引用指向的分支头,并输出其相对于 .git/
目录的路径。 通常情况下,你会将 HEAD
作为 <名称> 参数,以查看工作区所在的分支。
在给定两个参数的情况下,创建或更新符号引用 <名称> 以指向给定的分支 <引用>。
给定 --delete
和一个附加参数,删除给定的符号引用。
符号引用是一个存储以 ref: refs/
开头的字符串的常规文件。 例如,你的 .git/HEAD
就是一个内容为 ref: refs/heads/master
的常规文件。
选项
- -d
- --delete
-
删除符号引用 <名称>。
- -q
- --quiet
-
如果 <名称> 不是符号引用,而是分离的 HEAD,则不会发出错误信息;而是以非零状态静默退出。
- --short
-
将 <名称> 的值作为符号引用显示时,请尽量缩短该值,例如将
refs/heads/master
改为master
。 - --recurse
- --no-recurse
-
在以符号引用形式显示 <名称> 的值时,如果 <名称> 指向了另一个符号引用,则跟踪该符号引用链,直到结果不再指向一个符号引用为止(
--recurse
,这是默认设置)。 而--no-recurse
只在取消引用单级符号引用后停止。 - -m
-
用 <原因> 更新 <名称> 的 引用日志。 这仅在创建或更新符号引用时有效。
注释
过去,".git/HEAD" 是指向 "refs/heads/master" 的符号链接。 当我们想切换到另一个分支时,可以使用 ln -sf refs/heads/newbranch .git/HEAD
,当我们想知道自己在哪个分支时,可以使用 readlink .git/HEAD
。 但符号链接并非完全可移植,所以现在已被弃用,默认使用符号引用(如上所述)。
如果符号引用的内容打印正确,git symbolic-ref 将以状态 0 退出;如果请求的名称不是符号引用,则以状态 1 退出;如果出现其他错误,则以 128 退出。
GIT
属于 git[1] 文档