Posted at
GitDay 22

Gitを学んできた方法

GitどころかIT初心者だった私がどうやってGitを勉強してきたのかをまとめます。


先にまとめ

Gitを勉強するときは


  • とにかく手順を覚えてしまう→意味を調べる、理解する、という順番もあり

  • 新しいコマンドなどは10分くらい使って実際に使ってみるとよい

  • とにかく自分の成果物をリモートリポジトリ管理することで知識は増えていくし、コマンドも覚える


Git歴

Git 5年くらい

Github 2年くらい

Bitbucket 3年くらい

プライベートではBitbucketを使っています。


いわれるがままにやってみていた時期

配属直後くらいの時です。

配属された部署ではGitを使っていたため、必然的にGitを使うようになりました。

最初はEclipseのEgit(プラグイン)を使用してGUIでGitを使っていました。ただし、やっていることは全く分かっておらず、とにかく先輩に教えてもらった手順を行うことしかできませんでした。

そのため、何かちょっと(自分の手順に対して)イレギュラーなことが起こると自分ではどうにもできず、先輩に聞いてなんとかしていました。


理解し始めた時期

上の時期を乗り越えると正直仕事では困らなくなりました。

余裕も出てきて、今自分が行っている操作の意味を調べるようになりました。

Gitってそもそも何?とかaddとかmergeって何?というあたりを調べ始めました。

またブランチやブランチの運用方法についても調べたりしていました。

意味と手順を同時に知っていく、というのもあると思うのですが、今回は手順をとにかく覚えてそのあとに意味を調べる、という方法でした。

手順としては全体を知っているので、一部分一部分を調べた時にほかのところとつながりやすい、という利点があったと思います。


+αを学び始めた時期

困ったことも一人で解決できるようになり、だんだんと「Gitが得意になりたい!」と思い始めた時期です。

コマンドをいろいろ打つようになり、CUIで操作をするようになりました。

業務で使ったことがないコマンドも調べて使うようになりました。

このときは、ちょっと調べてすぐに使ってみる、という方法をとっていました。

実際に仕事をしているときに「こういうときってなんかいいコマンドないかな・・・」と思ったら、ちょっと調べて実際に使ってみる、という感じです。10分くらいしらべてよくわからなかったらいつも通りのやり方でやるということをしていました。

Gitはとにかく使ってみるのが一番定着する&理解が進むと思います。

使う機会を増やす、というのがGit初心者を抜ける第一歩かもしれないです。


Outputし始めた時期

知識もたまってきて、発信したい欲がでてきました。


  • Qittaへの投稿

  • チームメンバーへの発信

ということを行いました。

Qiitaへの投稿はコマンドチートシートなどを投稿していました。

チームメンバーへの情報発信は、ペアプロをしているときに「こういうときこのコマンド使えますよ」的な感じでちょっとずつ話をしていました。

(aliasなんかは知らない人にはとても受けがいいです)

またちょうどプロジェクトが新しく始まるところだったので、ブランチの運用方法について説明したりしていました(「A successful Git branching model」です)。

Outputすることで知識も定着しますし、周りから「Gitが得意だ」と思ってもらえることが増えた気がします。

また、便利になることを周りに共有すると喜ばれたり、実際にそれを使っていてくれたりするなどしてとてもうれしいです。


新人研修の講師を担当

こんな感じでGitを学んできたところ、新人研修の講師を依頼され、実際に2年間講師をさせていただきました。

講師を依頼されて純粋に嬉しかったですし、やりたいことは盛りだくさんでした。自身の経験からも「わかりやすさ」を追求していきたいという思いもありました。

実際は、ものすごく大変でした。

1からどころか0から内容を考えたり、そもそもこんなに長い時間話すイベントも、イベントの計画も初めてでした。

また、本当に時間通りに終わるのか、わかってもらえるのか、操作で失敗しないか、など不安だらけでした。

実際に実施したところ、うまくいかないところやハプニングもあったりしましたが、なんとか終わらせることができました。


勉強法

「とにかく使ってみる」というのが一番だと思います。

業務で使うのももちろんですが、自分の成果物とかちょっとローカルで書いてみたコードとかなんでもリポジトリ管理するとだいぶ操作になれると思います。

とくにcloneとかinitコマンドは業務で使う機会は本当に少ないと思います。個人的にコードを書いてGit管理することで業務でなかなか使わないコマンドにも触れることができると思います。