SYNOPSIS

git symbolic-ref [-m <reason>] <name> <ref>
git symbolic-ref [-q] [--short] [--no-recurse] <name>
git symbolic-ref --delete [-q] <name>

DESCRIPTION

引数が1つ与えられると、指定されたシンボリックrefが参照するブランチヘッドを読み取り、 .git/ ディレクトリを基準にしてそのパスを出力します。 通常、作業ツリーがどのブランチにあるかを確認するには、 <name> 引数として HEAD を指定します。

2つの引数を与えると、指定されたブランチ <ref> を指すようにシンボリックref <name> を作成または更新します。

--delete と追加の引数を指定すると、指定されたシンボリックrefが削除されます。

シンボリックrefは、 ref: refs/ で始まる文字列を格納する通常のファイルです。 たとえば、 .git/HEAD は、内容が ref: refs/heads/master である通常のファイルです。

OPTIONS

-d
--delete

シンボリックref <name> を削除します。

-q
--quiet

<name> がシンボリックrefではなく、切り離されたHEAD(detached HEAD)である場合は、エラーメッセージを発行しないでください。 代わりに、ゼロ以外のステータスで何も言わずに終了します。

--short

<name> の値をシンボリックrefとして表示する場合は、値を短くする事を試みます。例えば refs/heads/master から master へ。

--recurse
--no-recurse

<name> の値をシンボリック ref として表示するときに、 <name> が別のシンボリック ref を参照している場合、 結果が最早シンボリック ref を指さなくなるまで、そのシンボリック ref のチェーンをたどります(--recurse 、これがデフォルトです)。 --no-recurse は、 シンボリック ref の単一レベルのみを逆参照した後に停止します。

-m

<name> のreflogを <reason> で更新します。これは、シンボリックrefを作成または更新する場合にのみ有効です。

NOTES

以前は、 .git/HEADrefs/heads/master を指すシンボリックリンクでした。別のブランチに切り替えたい場合は、 ln -sf refs/heads/newbranch .git/HEAD を実行し、現在のブランチを確認したい場合は、 readlink .git/HEAD を実行しました。 ただし、シンボリックリンクは完全に移植可能ではないため、非推奨になり、(上記のとおり)シンボリックrefがデフォルトで使用されます。

git symbolic-ref は、シンボリックrefの内容が正しく出力された場合はステータス0で終了し、要求された名前がシンボリックrefでない場合はステータス1で終了し、別のエラーが発生した場合は128で終了します。

GIT

Part of the git(1) suite