🏹

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

2021/04/27に公開

みなさんこんにちは! 今回は前回の続きで、git log を学習して行きますね。そもそも、私はプログラマーという職種なので、どうしてもデバッグ行為をしてしまいます。でも、デバッグやテストこそが、一番大切な発想で、それが普段のプログラミングにおいても有効で、バグが少なくなるものです。え、、、と余談はこれぐらいにして、前回の続きをやって行きますね!

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

https://zenn.dev/shiozumi/articles/d32b7e2f797206

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

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

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

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

いつもの環境づくりから! 前回までの環境は、git clone でどうぞ!

$ git clone https://github.com/shiozumi-esmile/20210427.git func0085
Cloning into 'func0085'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 9 (delta 0), reused 9 (delta 0), pack-reused 0
Unpacking objects: 100% (9/9), done.

// 今回は、func0085フォルダー名を指定して、git cloneを実行
$ cd func0085

$ git log --oneline
29276e9 (HEAD -> main, origin/main, origin/HEAD) 3rd
b6a8ad4 2nd
0846578 1st

// ファイルは、1つのみ
$ ls
README.md

// ファイルの中身は、以下の通り!
$ cat README.md
func
test

// これで、前回の環境を復元できました!

では早速、git mv から!

$ git mv README.md README.org

$ git add .

$ git commit -m "4th"
[main eb24716] 4th
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename README.md => README.org (100%)

$ git log --oneline
eb24716 (HEAD -> main) 4th
29276e9 (origin/main, origin/HEAD) 3rd
b6a8ad4 2nd
0846578 1st

$ git log -S func --oneline
0846578 1st
// 1stのみで、README.org として、addした、4th コミットは、
// 抽出されませんでしたね。

$ cat README.org
func
test

mv ですからね。ファイル単体編集での、文字の変更削除ではありません。当たり前といえば、当たりまえ!(笑)

$ git log --oneline --stat -p

eb24716 (HEAD -> main) 4th
 README.md => README.org | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/README.md b/README.org
similarity index 100%
rename from README.md
rename to README.org


29276e9 (origin/main, origin/HEAD) 3rd
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 494a08a..11560a9 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,2 @@
-func0083
+func
 test


b6a8ad4 2nd
 README.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/README.md b/README.md
index b504e04..494a08a 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,2 @@
 func0083
+test


0846578 1st
 README.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b504e04
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+func0083

では、README.org を、viで編集!

// 文字、func の後ろに、0083 を追加
$ cat README.org
func0083
test

$ git add .
$ git commit -m "5th"

$ git log --oneline
b850ee4 (HEAD -> main) 5th
eb24716 4th
29276e9 (origin/main, origin/HEAD) 3rd
b6a8ad4 2nd
0846578 1st

// func0083 文字の追加と削除のコミット表示!

$ git log -S func0083 --oneline
b850ee4 (HEAD -> main) 5th
29276e9 (origin/main, origin/HEAD) 3rd
0846578 1st

git log --oneline --stat -p 最終確認!

5th コミット! --> +func0083

$ git log --oneline --stat -p
b850ee4 (HEAD -> main) 5th
 README.org | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.org b/README.org
index 11560a9..494a08a 100644
--- a/README.org
+++ b/README.org
@@ -1,2 +1,2 @@
-func
+func0083
 test

4h コミット! git mv なので変化なし!

eb24716 4th
 README.md => README.org | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/README.md b/README.org
similarity index 100%
rename from README.md
rename to README.org

3rd コミット! --> -func0083

29276e9 (origin/main, origin/HEAD) 3rd
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 494a08a..11560a9 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,2 @@
-func0083
+func
 test

2nd コミット! 変化なし!

b6a8ad4 2nd
 README.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/README.md b/README.md
index b504e04..494a08a 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,2 @@
 func0083
+test

1st コミット! --> +func0083

0846578 1st
 README.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b504e04
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+func0083

grep でもついでに確認!

$ git grep --break --heading -n func b850ee4 eb24716 29276e9 b6a8ad4 0846578
b850ee4:README.org
1:func0083

eb24716:README.org
1:func

29276e9:README.md
1:func

b6a8ad4:README.md
1:func0083

0846578:README.md
1:func0083

コミット値を、羅列するのが面倒な場合は!

$ git grep --break --heading -n func $(git rev-list --all)
b850ee46a58fb31c5671c770d1cb14504031e226:README.org
1:func0083

eb24716cbe0d67b11e5dac9eb08402f348a834bb:README.org
1:func

29276e9873750898b3ab61ad732f5ba3341d7dbe:README.md
1:func

b6a8ad45c1c273f145ce282d5e89a5ade56ff5cd:README.md
1:func0083

084657801a8745fe4f4db86529b0b27ebb5536fa:README.md
1:func0083

まとめ

さあ~今回は、git mv で試してみましたけど、ことのほか、-S オプションでは、追加削除として認識せず、私もちょっと慌ててしまいましたよ~ まあ~、人って予測したことが外れると、結構アタフタするものなんだと再認識しましたね。(^▽^;)

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

https://twitter.com/esmile2013

次回の記事はこちら!

https://zenn.dev/shiozumi/articles/907fd1613e24ef

Discussion