6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[GitHub] 行の変更履歴(blame)から対応する PR を探す

Posted at

Tl;Dr

GitHub上の Blame からリンクをホバーすると対応する PR が見つかる。
image.png

たぶんこれが一番早いと思います。

その修正をした PR を探したい

現代において、GitHub などのホスティングサービスによる『Pull Request』を利用した開発は非常に一般的になっている。

Git では標準でgit blameと呼ばれる、あるファイルの特定の行を修正した『コミット』を特定する仕組みが備わっており、その特定した『コミット』のメッセージや修正内容を確認することで、どういった意図で修正されたのか分かる。

$ git blame bin/deploy-firebase.sh
1c4cc183 (Yusuke Hosonuma 2018-12-08 02:50:47 +0900  1) #!/bin/bash -xe
1c4cc183 (Yusuke Hosonuma 2018-12-08 02:50:47 +0900  2)
1c4cc183 (Yusuke Hosonuma 2018-12-08 02:50:47 +0900  3) cd `dirname $0`
…

左端に表示されている1c4cc183というのがコミットSHA(の短縮形)で、 git showコマンドを利用すればそのコミットの詳細な内容を確認できる。

$  git show 1c4cc183
commit 1c4cc1837fe653e9101d0a9cf19068d747fe27e8
Author: Yusuke Hosonuma <tobi462@gmail.com>
Date:   Sat Dec 8 02:50:47 2018 +0900

    add: deploy script for firebase

diff --git a/bin/deploy-firebase.sh b/bin/deploy-firebase.sh
new file mode 100755
index 0000000..eaa1a7a
--- /dev/null
+++ b/bin/deploy-firebase.sh
@@ -0,0 +1,34 @@
+#!/bin/bash -xe
+
+cd `dirname $0`
…

しかし、前述したように『Pull Request』による開発が一般化したことで、修正の単位としてはむしろ『コミット』よりも『Pull Request』の方が分かりやすくなっていることが多い。また、PR でのディスカッションによる『意思決定』を確認したいことも非常に多い。

GitHub 上で対応する PR を探す

ローカルのgit logから対応するPRを探す方法もあるし、スクリプト一発で特定する方法もすでにナレッジとして記事化されていたと思う。

しかし、そうした手間を掛けずとも GitHub の blame 機能から探すこともできる。

ファイルを絞り込む

該当リポジトリの画面でキーボードの T キーを押すと、インクリメンタルなファイルの絞り込みが行える。
47CB0565-FF0C-4B3B-9AFF-CFF9566024DD.png

もちろん検索機能を活用してもよいし、ディレクトリツリーから探しても良いが、ファイル名が事前に分かっているのであれば個人的にはこれが一番早いように感じる。

Blame を表示する

ファイルを選択したら、右上に配置されている Blame ボタンから Blame を表示できる。
11C6090F-B4AF-499E-8154-B7A41070F03A.png

PR へのリンクを探す

Blame が表示されたら、冒頭のようにリンクにフォーカスすると対応する PR へのリンクが表示される。
C267E4AB-3003-46A0-862E-F8023FD62582.png

過去の Blame を表示する

これは Git にも備わっている機能だが、同じ行が複数のコミットに渡って修正されている場合、過去の Blame も表示することができる。

GitHub の Blame 画面でそれに該当する場合、行番号のルーラの左側にアイコンが表示され、そこをクリックすると過去の Blame が表示できる。
F3F5B1B0-F2A6-43B4-A933-999FF19BCB6C.png

この操作は再帰的に行え、最古のコミットまで辿ることができる。

終わりに

Git は非常に多機能であると言われ、実際にそうであり本当に使いこなすのには長い時間を要すると個人的には感じる。

しかし、GitHub も着実に進化しており、最近では『コードジャンプ機能』や『刷新された Notification 画面(beta)』など、かなりのタスクが GitHub 上だけで完結できるようになりつつあるとも感じる(もちろんすべてとは言わない)。

GitHub の機能も使いこなして快適な開発ライフを。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?