派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

第13話 どのコミットでバグが入ったかgit blameで調べてみよう【連載】マンガでわかるGit ~コマンド編~

f:id:itstaffing:20200617134342j:plain

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で一発確認!

f:id:itstaffing:20200617134345j:plain
f:id:itstaffing:20200617134349j:plain

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)ということがわかります。

f:id:itstaffing:20200619144452j:plain

f:id:itstaffing:20190617145538j:plain
わざわざコミットをさかのぼらなくても、コマンド一発でわかるから便利だね!
f:id:itstaffing:20190617145541j:plain
ちなみに、コミットIDの先頭についている「^」マークは、そのコミットがイニシャルコミット(最初のコミット)ということを表しているぞ。

まとめ

リポジトリ内の検索ができる「git blame」について学びました。

・各行にコミットした人の名前と日時を表示する

$ git blame [ファイル名]

Gitにはまだまだたくさんのコマンドがあります。
次回は、リモートリポジトリを追加するコマンド「git remote」を学びましょう。


▼登場キャラクター紹介
f:id:itstaffing:20200122103525j:plain

▼わかばちゃんが登場する書籍

▼ これまでの「マンガでわかるGit」