[社内新人向け]Gitで絶対にオススメなプラグインや設定3つ


社内に新人が増えてきたので、弊社のWeb開発でのGitのゆるーい利用方針をまとめます。
シリーズ第二弾です

第一弾:  [社内新人向け]Gitで使ってほしくないコマンド

社内環境

  • Web系開発がほぼ100%
  • ブランチワークはGitflowをベースにしたプルリク駆動開発
  • 少人数チームなので、エンジニアは全員LinuxのCUI操作をできて欲しい(vagrantや開発サーバ上の操作など)
    • GitのGUIクライアントは、SourceTreeとGithub公式を試しましたが、初学者が使うと却って危ない挙動をしてしまうケースがあったので、全員CUI操作をしてもらうことにしました
  • CIツールはまだ導入できず。各サーバーへのデプロイなどもgitコマンドを手動操作してます。

こんな環境なので、みんなGitの操作にはわりかし詳しいです。逆に言えば、うちで開発実務をやっていれば、Git操作ならある程度どこでも通用するレベルになれるはずです!(※個人の感想です)

前置きはここまで。
今回は、Gitをより快適に使いこなすために、個人的にオススメのツールや設定を共有します。
あんまりたくさん紹介してもあれなので、

  • 筆者が日常的に使用しているツールの、
  • その中でもさらによく使用するめっちゃ使える機能

に絞っています。

(1)Tig

言わずと知れた定番ツール。めっちゃ高機能ですが、
「あれ、自分は今どこをどう編集しているんだっけ?」 っと思ったら迷わずtigを叩きます。

用途

  • 現在のワークスペースのdiff(何をどう編集しているか)を細かく見たい時 (tig -> s でステータスビュー)
    • ステータスビューの利点として、「今コミットしようとしている差分(Changes to be committed)」だけでなく、「コミット対象に含まれていない差分(Changes not staged for commit)」も合わせて見られることです。これが観れることで、「特定ファイルだけをコミットし忘れちゃった・・・」 的な凡ミスがかなり減らせます。
  • stashされた内容を見たい時(tig-> y)

Mac環境であればHomebrewでサクッと入れてすぐ使えるようになるのも嬉しい。

参考記事: (http://qiita.com/suino/items/b0dae7e00bd7165f79ea)

(2)Git-Completion

gitのタブ補完を有効にしてくれるツール。
コマンドの補完はもちろんですが、強力なのはブランチ名補完add対象の絞り込み補完です。
gitコマンドを打つ速度が30%くらい早くなります。

bashスクリプトなので、sourceコマンドや.bashrcに追記すればすぐ使えます。

用途

  • ブランチ名を入力する時
    • bashのcdコマンドと同じように、tabで自動補完
    • tabを二連打すれば、候補が出てきます。ブランチ名がうろ覚えでも安心!
  • git addする時
    • ファイル名がtabで自動補完されるのはbashと同じですが、補完候補を実際に差分があるファイルに絞ってくれます。
    • 例えば、 src/ディレクトリ以下で編集したファイルが src/controller/UsersController.phpしかない場合、src/だけ入力してからTabを連打すると、勝手にsrc/controller/UsersController.phpまで自動的に補完されます。超便利。
    • 同様に、TAB二連打 すると、差分があるファイル(ディレクトリ)だけが候補としてでます。これも便利。

参考記事: (http://mawatari.jp/archives/git-completion-bash)

(3)git push [現在のブランチ]git cpushに割り当て(alias設定)

まだちょっと趣が変わり、こちらは~/.gitconfig[alias]ディレクティブで設定で使える機能です。
詳しいやり方は↓の記事へ。
http://qiita.com/tkengo/items/5bae50fb7531d5a6bbcf
(この設定を記事にしてくれた@tkengo様に惜しみない賞賛を送りたいです!本当に助かっています

筆者は「現在のブランチをpush」をgit cpush(current-push)に割り当てています。

用途

  • pushする時は絶対にgit cpushで!
    • というのも、開発でgit pushするときの対象ブランチって、ほぼ100%カレントブランチなんですよね。その際に、毎回 git push develop とかならまだしも、 git push hotfix/ITPRO-345_for_masterとか、対応するチケットごとに違うブランチ名を入力するのは完全に手間です。(しかも1文字でも間違えるとpushできないというイライラ仕様)
    • それがブランチ名を気にせず、常に git cpushのキータイプ9文字で済むのだから、ノーコストハイリターンです。

以上、絶対に自信を持っておすすめできるgitのプラグイン+設定でした。

「いや、このプラグインも絶対MUSTでしょ!」 と思った方がいましたら、ぜひコメントいただけますと幸いです!