genonymous

GenestreamのTechブログ

新人向け Gitを楽に使えるようになるために

こんにちは徳山です。最近Gitの操作でつまづいて時間をとられているのをよく目にします。開発を楽に進めるためのツールで逆に苦労していて本末転倒になってしまってもったいないと思っています。

つまづいてしまっている原因

何故つまづいてしまっているのか考えてみるとこの辺りじゃないかと思います。

  • ターミナル操作に不慣れ
  • 概念やコマンドなど覚える事が沢山ある
  • コマンドがどんな操作をするのかイメージを持てていない
  • 何のためにGitを使うのかよくわかっていない

Gitを使って何をするのか

Gitでやることはコードの変更の歴史を使いやすいように作っていくことです。
そのために今の状態がどうなっているか確認し、どう変化させたいのか考え、適切なコマンドを使います。

よくつまづいている人は今の状態 (各ブランチのログ, 今参照しているコミット, indexにaddされた変更, working treeで行った変更) をちゃんと確認せずに、どうなるかイメージ出来ていないコマンドを実行している事が多いように思います。

慣れるまでは毎回コマンドを実行する前後で意図通りに変更出来たか確認しましょう。

道具を上手く使って楽をする

とても強力なシェルzshと、zshを使いやすいようにカスタマイズしてくれるoh-my-zshを導入しましょう。
ターミナルの操作に慣れていない人はシェルとかカスタマイズとか言われてもよくわからないし怖いと感じるんじゃないかと思います。そんな人にこそ使ってもらいたいです。

Gitを使う上でzsh + oh-my-zshから受けられる恩恵

今の状態の可視化

プロンプトに今checkoutしているブランチの名前やコミットされていない変更があるかなどを表示してくれます。

oh-my-zshでコマンドを楽に入力する

Gitの便利なコマンドに別名(alias)を設定してくれます。良く使うものは

  • gst : git status の見やすくなるオプションつきaliasです。
    僕はことあるごとに指が勝手に gst を押して今の状態を確認しています。
  • gd : git diff です。 gdcgit diff --cached です。どちらもよく使います。
  • glog : git log の一行版に色と装飾とブランチのグラフを付けたものです。
  • gco : git checkout です。gco master のように後ろにブランチ名を付けて使います。

他にも便利なaliasが沢山あります。alias コマンドで確認できます。

tabキーでコマンドやブランチ名の補完

zshの機能でコマンドの補完があります。コマンドを途中まで打ってtabキーを押してみて下さい。
残りが自動で入力されます。候補が複数ある場合はタブを2回以上押すと候補が表示されて選択できます。

oh-my-zshのgitプラグインを使うように設定しているとブランチ名も補完されるようになります。
先ほどの gco の後にブランチ名を途中まで打ってtabキーを押すと自動で入力されます。

導入方法

以下の記事に纏まっています。 (4)プラグインを使うの plugins=()git を含めるところまではやりましょう。

他に参考になる資料

コマンドのイメージをつかむ

教科書

知っておくと理解が早まるGitの仕組み

少し難しくなってしまうのですがGitの仕組みを何となくでも知っていると各コマンドが何をするのかのイメージがしやすくなります。
そもそもコミットってなんだろう?どんな情報を持っているの?どこに保存されているの?とかそういう話です。余裕があればこの辺りも軽く見てみるといいと思います。