git blameとpecoとhubで特定行のGitHubのPRを一発で開くのを実現するgit alias

via GIPHY

tl;dr

大規模なプロジェクトでコード書いてると、「なんでこういう設計になってるのか」とか「当時はどういう仕様だったのか」みたいなのを知りたいことがよくある。

そういったときに、プルリクエストを見ることで知りたい情報を手に入れられることがある。

この行のプルリクエストをみたいな〜と思ったときに、参考にあるCommit Hashから調べる方法で解決していたのだけど、Commit Hashを調べてコピーして git openpr <commit hash> ってやるのが手間だな〜と思ったので一発でこれができるコマンド(blamepr)を作った。

依存ツール

両方brewで入る

設定

~/.gitconfigに↓を追記する。

別にblamepr という名前じゃなくてもいい。自分で好きな名前にしてください。

[alias]
    openpr = "!f() { hub browse -- `git log --merges --oneline --reverse --ancestry-path $1...master | grep 'Merge pull request #' | head -n 1 | cut -f5 -d' ' | sed -e 's%#%pull/%'`; }; f"
    blamepr = "!f() { git blame $1 |peco| cut -f 1 -d ' ' | xargs -I@ git openpr @; };f"

使い方

とても簡単で、 git blamepr <file_name> とやるとpecoにgit blameされたものが出てくるので該当行を絞り込んで、Enterを押すだけ。

参考