0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

git blameで色々推測してみる

Posted at

共同開発や実務等でこれ使われていないけどどうして残っているんだってコード見たことありませんか?

実際、私もインターンでとても大事そうなモジュールが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を使うことで、誰が書いたコードなのか、一緒にコミットされたコードを見ることでコンテキストを把握したりして、一人で判断することが難しいコードの扱い方について方針を立てやすくなります。

誰に聞けばいいのか、どう聞いたらいいのかがわかるのでおすすめなのでぜひ使ってみてください。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?