共同開発や実務等でこれ使われていないけどどうして残っているんだってコード見たことありませんか?
実際、私もインターンでとても大事そうなモジュールがgoのinternalパッケージ配下で実装されているが、どこにも使われていないコードを発見し、誰が実装したのかもわからないため、誰にどう質問すればいいのかわからない状態が起きてしまいました。
そんな時に使えるgitコマンドblame
を紹介します。
blameとは
blameコマンドを使うことで、誰がどのコミット時に何を書いたかをみることができます。
git blame <file名>
実際にblameを使ってみると下のように表示されます。
dbf45581 (maooz4426 2020-06-24 17:21:56 +0900 1) package service
dbf45581 (maooz4426 2020-06-24 17:21:56 +0900 2)
dbf45581 (maooz4426 2020-06-24 17:21:56 +0900 3) import (
dbf45581 (maooz4426 2020-06-24 17:21:56 +0900 4) "context"
00000000 (Not Committed Yet 2025-07-16 18:11:36 +0900 5) "log"
一番左からコミットハッシュ、ユーザー名と表示されます。
このユーザー名からコードはこの人が書いてたんだ、じゃあこのコード今は使っているのか、消しても問題ないのか聞いてみようと、slackとかで聞くことができるようになります。
さらに推測してみる
ここから実はさらにどのような時に実装されたコードなのか知ることができます。
git showコマンドを使うことで、一緒にコミットされたファイルをみることができます。
git show dbf45581
ただCLIで見るのはとてもしんどいのでおすすめなのはgithub上で見ることです。
下のようにすることでgithub上で一緒にコミットされているコードもみることができます。
https://github.com/maooz4426/[repository名]/commit/[ハッシュ値]
ここから元々この部分で使われてたけど、今は別の方法で代替されたから使われてないんだみたいなことを推測できます
まとめ
git blameを使うことで、誰が書いたコードなのか、一緒にコミットされたコードを見ることでコンテキストを把握したりして、一人で判断することが難しいコードの扱い方について方針を立てやすくなります。
誰に聞けばいいのか、どう聞いたらいいのかがわかるのでおすすめなのでぜひ使ってみてください。