Gitコマンド入門::さまざまなツール(Git Log3)第八十六回

3 min read読了の目安(約3400字

みなさんこんにちは~ ご無沙汰ぶりです!
前回の投稿日、4月27日から約1か月半、だいぶ日が空いてしまいましたが、みなさんの学習は、順調に進んでいましたか?!

ちなみに私の方は、GWに突入後、本業が忙しくなり、社員の査定評価、昇給やらなんだかんだで、バタバタしていました。技術的なことは、ほぼ、なにも手を付けられませんでしたね~

で、、、PHP8のプログラム学習、CentOS Stream8 のサーバー構築、ZendFrame1からの移行計画、さらに、10Gpbs LANの入れ替えも、昨年の夏から止まったままで~す!(苦笑)

気が付けば溜まりに溜まった、私の技術的な仕事ですけど、まあ~、現行のシステムで問題なく稼働していますので、コンピューター様様ですね~ m(_)m

前回の記事はこちらから!

https://zenn.dev/shiozumi/articles/6ca95d00ff18dc

今日の学習も、引き続き、こちら!

https://git-scm.com/book/ja/v2/Git-のさまざまなツール-検索
7.5 Git のさまざまなツール - 検索 の下にある、ログの行指向検索

git本家本元の情報はこちらから!

https://git-scm.com/book/ja/v2

今回は、git log -L コマンドの学習!

それでは前回の続きで、git log -L を学習して行きますね。
-L を付けて実行すると、特定ファイルに存在する関数を指定して、その変更履歴を抽出することができます。

main.php ソースコードファイルを用意

main.php
<?PHP

function sub()
{
	echo "git log -L :sub:main.php \n";
	echo "1st \n";
}

sub();
?>

まずは、シンプルに、main.php に、sub関数を追加してみました。こちらのファイルを、gitにコミットしていきます!

まずは、いつもの環境づくりから!

mkdir func0086 && cd $_

$ ls -a
.  ..  .git  main.php

// こちらが、初期状態の main.php ファイルの中身です。

// では、いつもの初期化で、main.php をコミットするところまで!
$ git init

$ git add main.php

$ git commit -m "1st"
[master (root-commit) 3592aa8] 1st
 1 file changed, 11 insertions(+)
 create mode 100755 main.php

$ git log --oneline
3592aa8 (HEAD -> master) 1st

同じ環境を、クローンで取得可能です!

$ git clone https://github.com/shiozumi-esmile/20210609.git func0086

お急ぎの方は、こちらをどうぞ!

main.php の 1stを、2ndに変更して保存!

main.php
<?PHP

function sub()
{
	echo "git log -L :sub:main.php \n";
	echo "2nd \n"; // この行を、1stから、2ndに変更!
}

sub();
?>

では早速、git add + git commit

$ git add main.php

$ git commit -m "2nd"
[master f7302eb] 2nd
 1 file changed, 1 insertion(+), 1 deletion(-)
 
$ git log --oneline
f7302eb (HEAD -> master) 2nd
3592aa8 1st

git log -L :sub:main.php を実行!

$ git log -L :sub:main.php
commit f28601321658a3d21073f8a65279379a7c565279 (HEAD -> master)
Author: Makoto Shiozumi <shiozumi@esmile-hd.jp>
Date:   Wed Jun 9 11:28:08 2021 +0900

    2nd

diff --git a/main.php b/main.php
--- a/main.php
+++ b/main.php
@@ -3,6 +3,6 @@
 function sub()
 {
        echo "git log -L :sub:main.php\n";
-       echo "1nd\n";
+       echo "2nd \n"; // この行を、1stから、2ndに変更!
 }


commit 3592aa856ba285a45c4fc81a6979d10801b4d6e6
Author: Makoto Shiozumi <shiozumi@esmile-hd.jp>
Date:   Wed Jun 9 11:18:08 2021 +0900

    1st

diff --git a/main.php b/main.php
--- /dev/null
+++ b/main.php
@@ -0,0 +3,6 @@
+function sub()
+{
+       echo "git log -L :sub:main.php\n";
+       echo "1nd\n";
+}
+

おおっ! これは、ちょっと使えそうですね!

開発時では、特定の関数を検索するシーンはよくありますね。未だに私は、テキストディターのMifes を使っていますけど、、、(^▽^;) 関数名で、grep 検索したあとの変更履歴を確認したいときに使えそうです。 まあ~、何はともあれ、エラーで原因不明の時などは、片っ端から検索しまくりますので、、、その中の一つの手段としては、この、git log -L コマンドを使ってみると、もしかしたら、問題を解くきっかけになるかも?!

まとめ

さあ、みなさんは、いかがでしたか?! いろいろ想定して、自作自演で検索してみると、より深く理解できると思います。 私も久しぶりの投稿なので、ややアイデア不足となってしまいましたけど、本家本元のドキュメントを読んでいると、結構、アイデアや興味が湧いてくるものです。ほんと不思議なのですが、人間はどんどん深く考えていくほど、また、さらにその先も見えてくるものなんですよね~(笑)

唐突ですが、書籍紹介しますね!(^▽^;)

ちょっと、本題から逸れてしまいますが、よろしければ、こちらの書籍をどうぞ!
まあ~、私のような年齢になると、徐々に頭が回らなくなるので、常に、頭の体操が必要になるんですよね~

https://www.google.co.jp/books/edition/頭がよくなる思考術/maVGDAAAQBAJ?hl=ja&gbpv=1&printsec=frontcover

それでは、今回はここまで、お疲れ様でした!

https://twitter.com/esmile2013