Slide 1

Slide 1 text

git コマンドを 完全に理解した僕の チーム開発での犯人探し yasudanaoya

Slide 2

Slide 2 text

<名前> yasuda naoya <技術> ❏ javascript ( vue, nuxt ) * ❏ Ruby ( rails ) 自称フロントエンジニア <アカウント> ❏ GitHub, Qiita, speakerdeck : yasudanaoya ❏ Twitter :@708yasuda 自己紹介

Slide 3

Slide 3 text

チーム開発をしていると こんな問題、遭遇しませんか?

Slide 4

Slide 4 text

なぜ?いつ?誰が? こんな変更加えたの? あっれれ〜おっかしいぞ この機能僕追加したはず なのになあ 消えてる...。 僕の意図とは全く別のメ ソッドに書き換えられて る....。 誰がやったんだ・・

Slide 5

Slide 5 text

よし、犯人を見つけよう

Slide 6

Slide 6 text

最近遭遇したケース yasuda が作った箇所が バグってます!!! 報告 ごめんなさい。 すぐ調査します。 プロパー社員 パートナー社員 yasuda

Slide 7

Slide 7 text

調査結果 どなたかが僕のコミットをリバートしていて、 そのまま放置されていました。 本当にありがとうございました。

Slide 8

Slide 8 text

調査方法 $ git checkout develop $ git pull $ git log {対象のファイル名} とりあえずやるが何もわからない。

Slide 9

Slide 9 text

そこで使ったのが $ git log -S{思いつく書いていたコード} するとリバートしたコミットが出てきた...。 commit 12345678901234567890123456789012345678 Author: hoge <00000000+hoge@users.noreply.github.com> Date: XXX XXX X 00:00:00 2020 +0900 リバートしたで

Slide 10

Slide 10 text

リバートした時のPRを探す 困ったときは google 先生に聞くんです。 [github.com/{organization名}/{repository名}/commit/{さっきのハッシュ値}] で検索します。 例 github.com/yasuda_famiry/travel/commit/12345…..

Slide 11

Slide 11 text

コミットのページに飛ぶ するとこんな感じのが表示されます。 この画像でいうところの「#26」が PR のリンクになります。 PR を見れば、大体の理由は記載されているので、 これを持って担当者に問い合わせます。

Slide 12

Slide 12 text

大詰め 担当者も PR なんていう物的証拠を持ち出されたら、回答できちゃうから、回答するし か無くなります 回答がわからない、思い出せない相手に対して、質問をしても相手は「ごめんなさい」 しか言えず、何の解消はしないし、再犯の恐れもあります。 大切なことは、相手が回答するヒントをこっち側で用意してあげるってのが大事です。 (時と場合によりますけどね?)

Slide 13

Slide 13 text

最後に、よく使うコマンドの紹介 $ git blame {file名} -L {見たい行の値},+{そこから何行見るか} クソ長いファイルだと、ただ git blame するだけだと見にくくて仕方がないです。なの で、見たい行を絞ってあげるってのが必要です。 シーンとしては、不思議な変更を見つけた時に、その差分のコミットハッシュが知りたい 場合です。 コミットハッシュがわかれば、あとは、 git show {コミットハッシュ} で検索をすれば、全 量が見えて繋がりが見えるので、色々幸せになります。

Slide 14

Slide 14 text

おわりに 僕は git command が好きで、熱心に勉強をしている方だと思います。 その理由としては、ブルーオーシャンだからです。チームの中に有識者がいないので、 ちゃんと深めれば僕の価値が高くなるから。 結構打算的に取り組んでいたのです。

Slide 15

Slide 15 text

紹介 実は、 git command について、以下の媒体で記事を書いています。 ● dev.to ● Qiita よかったら見てやってください