
Webサービスやアプリ開発の現場では必須のバージョン管理システム「Git(ギット)」。Gitは、専用のソフトを使えばクリックで直感的に操作することもできますが、いざというときにコマンドが使えると便利です。
前回の第12話では、リポジトリ内の検索ができる「git grep(グレップ)」について学びました。
・特定の文字列を含む箇所を検索する(大文字、小文字を区別する)
$ git grep “検索したい文字列”
・コミットやブランチを指定して検索する
$ git grep “検索したい文字列” コミット識別子
・ファイル名のみ表示する
$ git grep -l “検索したい文字列”
今回の第13話では、どのコミットでバグが入ったかを調べられる「git blame(ブレーム)」の使い方を学びます。このマンガを通して、わかばちゃんと一緒にGitの知識を身につけていきましょう!

【筆者】湊川 あいさん
フリーランスのWebデザイナー・漫画家・イラストレーター。マンガと図解で、技術をわかりやすく伝えることが好き。 著書『わかばちゃんと学ぶ Git使い方入門』『わかばちゃんと学ぶ Googleアナリティクス』『わかばちゃんと学ぶ Webサイト制作の基本』『運用ちゃんと学ぶ システム運用の基本』が発売中のほか、マンガでわかるGit・マンガでわかるDocker・マンガでわかるRuby・マンガでわかるScrapbox・マンガでわかるLINE Clova開発・マンガでわかる衛星データ活用といった分野横断的なコンテンツを展開している。・Amazon著者ページ
・Twitterアカウント
この行を変更したのはだれ?git blameで一発確認!


git blameの使い方
次のコマンドで、いつ誰のコミットでその行が変更されたのかを調べられます。
$ git blame [ファイル名]
・Gitリポジトリ直下にあるファイルを調べたい場合
例)リポジトリ直下にある「config.yml」というファイルを調べる
$ git blame config.yml
・階層がある場合
例)appフォルダの中にある「app.component.ts」というファイルを調べる
$ git blame src/app/app.component.ts
このコマンドを実行してみると、次のように表示されました。5行目の変更をしたのは、5月11日12時20分の魔王教授(mao-kyojyu)ということがわかります。


わざわざコミットをさかのぼらなくても、コマンド一発でわかるから便利だね!

ちなみに、コミットIDの先頭についている「^」マークは、そのコミットがイニシャルコミット(最初のコミット)ということを表しているぞ。
まとめ
リポジトリ内の検索ができる「git blame」について学びました。
・各行にコミットした人の名前と日時を表示する
$ git blame [ファイル名]
Gitにはまだまだたくさんのコマンドがあります。
次回は、リモートリポジトリを追加するコマンド「git remote」を学びましょう。
▼登場キャラクター紹介

▼わかばちゃんが登場する書籍
▼ これまでの「マンガでわかるGit」
第1話「リポジトリの作成」
第2話「ブランチの概念」
第3話「マージの仕組み」
第4話「コンフリクトの修正」
第5話「git revert」
第6話「git reset 3種類」
第7話「git reflog」
第8話「git switchとgit restore」
第9話「git diff」
第10話「git cherry-pick」
第11話「git stash」
第12話「git grep」
第13話「git blame」
第14話「git remote」
第15話「.gitconfig でコマンドを短縮」
第16話「.gitconfig と .git/config で複数のGitアカウントを使い分ける」
第17話「prune オプション」
第18話「git tag」
第19話「detached HEAD 状態って何?」
第2話「ブランチの概念」
第3話「マージの仕組み」
第4話「コンフリクトの修正」
第5話「git revert」
第6話「git reset 3種類」
第7話「git reflog」
第8話「git switchとgit restore」
第9話「git diff」
第10話「git cherry-pick」
第11話「git stash」
第12話「git grep」
第13話「git blame」
第14話「git remote」
第15話「.gitconfig でコマンドを短縮」
第16話「.gitconfig と .git/config で複数のGitアカウントを使い分ける」
第17話「prune オプション」
第18話「git tag」
第19話「detached HEAD 状態って何?」