🏹
Gitコマンド入門::Gitオブジェクト(symbolic-ref)第五十五回
みなさんこんにちは! 今回もGit本家のサイトを参考にして進めていきますね。
今回は、symbolic-ref コマンドで、HEADの切り替え操作です。
前回、第五十四回の記事はこちらから!
git本家本元の情報はこちらから!
今日の課題も前回同様、ここを参考にしています!
10.3 Gitの内側 - Gitの参照
git symbolic-ref HEAD
$ git symbolic-ref HEAD
refs/heads/master
// HEADファイルの中身です!
$ cat .git/HEAD
ref: refs/heads/master
// cat コマンドでも、勿論、同じように確認できますね。
$ cat .git/refs/heads/master
1e3f4892a273326780b4fb8b44a5b76469b5ffa2
// 最新のコミットしたハッシュ値が入ってます!
$ git log --oneline
1e3f489 (HEAD -> master, origin/master, test) third commit
514ff38 second commit
8cab88d first commit
まずは、基本中の基本ですけど、HEADが指すファイルの中には、一番最新のコミットのハッシュ値が入っていますね。
git checkout -b test
$ git checkout -b test
// 既に、ローカルtestブランチがある方は、git switch test
$ git symbolic-ref HEAD
refs/heads/test
// 今度は、HEADの中身が、refs/heads/testになりましたね。
$ cat .git/refs/heads/test
1e3f4892a273326780b4fb8b44a5b76469b5ffa2
git symbolic-ref HEAD refs/heads/master
$ git symbolic-ref HEAD refs/heads/master
[shiozumi@ovs-009 func0054]$ git branch -avv
* master 1e3f489 [origin/master] third commit <!-- 選択!
test 1e3f489 third commit
remotes/origin/master 1e3f489 third commit
// ブランチが、test から、master に切り替わりましたね!
$ git symbolic-ref HEAD refs/heads/test
[shiozumi@ovs-009 func0054]$ git branch -avv
master 1e3f489 [origin/master] third commit
* test 1e3f489 third commit <!-- 選択!
remotes/origin/master 1e3f489 third commit
// ブランチが、master から、test に切り替わりましたね!
git switch と同じ動作をするんですね。
そして、.git/HEAD ファイルを常にベースとしながら、gitコマンドも動作しています。ただただ、それだけの事ですけど、HEADは、とても重要な物ですから、この機会に更に理解を深めて置きましょう。
それでは、今回はここまで、お疲れ様でした!
Discussion