{
    "mode": "man",
    "parameter": "GIT-SYMBOLIC-REF",
    "section": "1",
    "url": "https://www.chedong.com/phpMan.php/man/GIT-SYMBOLIC-REF/1/json",
    "generated": "2026-06-13T22:58:41Z",
    "synopsis": "git symbolic-ref [-m <reason>] <name> <ref>\ngit symbolic-ref [-q] [--short] <name>\ngit symbolic-ref --delete [-q] <name>",
    "sections": {
        "NAME": {
            "content": "git-symbolic-ref - Read, modify and delete symbolic refs\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "git symbolic-ref [-m <reason>] <name> <ref>\ngit symbolic-ref [-q] [--short] <name>\ngit symbolic-ref --delete [-q] <name>\n\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "Given one argument, reads which branch head the given symbolic ref refers to and outputs its\npath, relative to the .git/ directory. Typically you would give HEAD as the <name> argument\nto see which branch your working tree is on.\n\nGiven two arguments, creates or updates a symbolic ref <name> to point at the given branch\n<ref>.\n\nGiven --delete and an additional argument, deletes the given symbolic ref.\n\nA symbolic ref is a regular file that stores a string that begins with ref: refs/. For\nexample, your .git/HEAD is a regular file whose contents is ref: refs/heads/master.\n",
            "subsections": []
        },
        "OPTIONS": {
            "content": "",
            "subsections": [
                {
                    "name": "-d, --delete",
                    "content": "Delete the symbolic ref <name>.\n",
                    "flag": "-d",
                    "long": "--delete"
                },
                {
                    "name": "-q, --quiet",
                    "content": "Do not issue an error message if the <name> is not a symbolic ref but a detached HEAD;\ninstead exit with non-zero status silently.\n",
                    "flag": "-q",
                    "long": "--quiet"
                },
                {
                    "name": "--short",
                    "content": "When showing the value of <name> as a symbolic ref, try to shorten the value, e.g. from\nrefs/heads/master to master.\n",
                    "long": "--short"
                },
                {
                    "name": "-m",
                    "content": "Update the reflog for <name> with <reason>. This is valid only when creating or updating\na symbolic ref.\n",
                    "flag": "-m"
                }
            ]
        },
        "NOTES": {
            "content": "In the past, .git/HEAD was a symbolic link pointing at refs/heads/master. When we wanted to\nswitch to another branch, we did ln -sf refs/heads/newbranch .git/HEAD, and when we wanted to\nfind out which branch we are on, we did readlink .git/HEAD. But symbolic links are not\nentirely portable, so they are now deprecated and symbolic refs (as described above) are used\nby default.\n\ngit symbolic-ref will exit with status 0 if the contents of the symbolic ref were printed\ncorrectly, with status 1 if the requested name is not a symbolic ref, or 128 if another error\noccurs.\n",
            "subsections": []
        },
        "GIT": {
            "content": "Part of the git(1) suite\n\n\n\nGit 2.34.1                                   02/26/2026                          GIT-SYMBOLIC-REF(1)",
            "subsections": []
        }
    },
    "summary": "git-symbolic-ref - Read, modify and delete symbolic refs",
    "flags": [
        {
            "flag": "-d",
            "long": "--delete",
            "arg": null,
            "description": "Delete the symbolic ref <name>."
        },
        {
            "flag": "-q",
            "long": "--quiet",
            "arg": null,
            "description": "Do not issue an error message if the <name> is not a symbolic ref but a detached HEAD; instead exit with non-zero status silently."
        },
        {
            "flag": "",
            "long": "--short",
            "arg": null,
            "description": "When showing the value of <name> as a symbolic ref, try to shorten the value, e.g. from refs/heads/master to master."
        },
        {
            "flag": "-m",
            "long": null,
            "arg": null,
            "description": "Update the reflog for <name> with <reason>. This is valid only when creating or updating a symbolic ref."
        }
    ],
    "examples": [],
    "see_also": [],
    "tldr": {
        "source": "official",
        "description": "Read, change, or delete files that store references.",
        "examples": [
            {
                "description": "Store a reference by a name",
                "command": "git symbolic-ref refs/{{name}} {{ref}}"
            },
            {
                "description": "Store a reference by name, including a message with a reason for the update",
                "command": "git symbolic-ref -m \"{{message}}\" refs/{{name}} refs/heads/{{branch_name}}"
            },
            {
                "description": "Read a reference by name",
                "command": "git symbolic-ref refs/{{name}}"
            },
            {
                "description": "Delete a reference by name",
                "command": "git symbolic-ref {{-d|--delete}} refs/{{name}}"
            },
            {
                "description": "For scripting, hide errors with `--quiet` and use `--short` to simplify (\"refs/heads/X\" prints as \"X\")",
                "command": "git symbolic-ref {{-q|--quiet}} --short refs/{{name}}"
            }
        ]
    }
}