Git を自分仕様にして使いやすくしよう
SKIYAKI でエンジニアをしています、akaishi です。みなさま今日も git status
していますか?
わたしは事ある毎に git status
をして現状確認しています。安全第一。
さてその Git を使う上でコマンドを毎日のように打つのですが、 よく打ち間違えたりしてはそんなコマンドねーよと言われたり、delete ボタンの押す回数が増えたりと typo マスターの名を欲しいままにしているわけなんですね。
なので少しでも自分なりの設定をしておくことでそんなことで使う時間を短縮できます。
alias の設定
alias の設定はとても簡単です。今回は git status
を設定してみます。
git config --global alias.st status
はい、ドン!これだけで alias の設定が完了です。システム上の全ユーザー全リポジトリに設定する場合は --system
にするだけでも可能です。
わたしは --global
に設定して .gitconfig
で管理する(後述)方式を採用しています。
他にもコマンドを複数渡したりもできるので
git config --global alias.st '!git status && git stash list'
status と stash の中身を同時にチェックできてとても便利です。
サブコマンドの設定
git ではブランチをお手軽に作成ができるのですが、使う上ではプロジェクト単位でブランチを作ったり 機能毎にブランチを作ったりとしているかとおもいます。その位の粒度だとブランチを見渡すことはそんなに苦労はしないのですが、 ブランチを事ある毎に作る癖があるとそのお手軽さ故についついブランチを切りすぎることがあるんですよね。
私がよくやるのが、 (あっ、これ作れそうだから試してみるか・・)git branch feature/a (これ途中だけど作りなおそうかな・・・)git branch feature/aa (既にブランチ名被ってるのか・・・じゃあ 2 を作るか)git branch feature/a2 などと考えなしに作り始めるとあら不思議、似たり寄ったりのブランチ名と増えるばかりのブランチの完成です。
feature/a feature/a2 feature/aa * master sample/a sample/b sample/b2 sample/c2
あー・・・つらいです。よし、機能っぽい名前を付けていこう!と考えなおすわけですね。
feature/link_check feature/link_check2 feature/link_check_renewal * master sample/add_message_for_admin sample/coming_soon sample/csv_generate sample/remove_myself
よし、なんの機能かはなんとなく想像つくぞ!
とこのへんまではいいのですが、ブランチの切り替え時には補完をしてくれる git-completion.bash
を頼りつつでも途中まではブランチ名を打つのが非常に面倒になります。
じゃあ選択してブランチ切り替え出来るサブコマンドを作成したらいいのでは??ということで作成してみました。
やっていることはブランチ名を取得して番号で選択出来るようにしたサブコマンドです。ブランチ名を手で打つよりは楽出来るはずです。 次にこのサブコマンドをどこでも使えるように準備します。 準備の方法としては - コマンドが実行出来る場所にファイルを配置する - 好きな場所に配置してPATHを通す
のどちらかになるかと思います。今回は単純にコマンドが実行出来る場所にファイルをシンボリックリンクで配置します。
git clone git@gist.github.com:8f1cfe3a9c3e1eb8ead4.git cd 8f1cfe3a9c3e1eb8ead4 echo `git --exec-path` && ln -s "$(pwd)/git-branch-list" $_
あとは git のコマンドが実行できるとこで git branch-list checkout
などとすると利用が出来るようになります。
これをさらに alias に設定をするとさらに楽になります。
.gitconfig の管理
色々な alias やらサブコマンドを設定して指が慣れてくると、PCを変えた時に再設定が面倒になります。 そのため設定したものを git で管理をするようにしています。要は dotfiles のことですね。 まずはファイルの移動とシンボリックリンクの準備です。
cd ~ mkdir dotfiles mv .gitconfig dotfiles ln -sf ~/dotfiles/.gitconfig ~/.gitconfig
あとはよしなに git で管理しておくだけです。
こういった設定を少しずつして自分仕様にすることで打ち間違い防止や入力効率のUPになります。他にもコミットメッセージのテンプレなどのhook の設定もすると快適なGitライフが送れるようになりますね。