2014年、春のGit事情
なんとなく最近どんな感じでGitを使っているか、適当にリストアップしてみた。
よく使うやつ
git statusgit status --branch --shortにしている。変更されたファイルが出る。とりあえず何をしたかざっくり把握する用。sにエイリアスしている。一日100回くらい実行しているのではないか。git diff特にオプションは指定していない。何をしたかしっかり把握する用。
dにエイリアスしている。一日50回くらい実行しているのではないか。git grepバージョン管理しているファイルから渡した単語を含む行を検索、表示。関数の検索などあらゆる場面で超便利。オプションは
--line-number --show-function --color --heading --breakがオススメ。git ls-filesバージョン管理しているファイルのファイルパスを表示。どんなファイルがあったか一覧するのに便利。 パイプを駆使すると使い道が増える。例えばこのアプリ、ヘルパーは何があったっけ?って時は
$ git ls-files | grep helper.rbで一覧できる。git showHEADのコミットログとDiffを表示。ついさっき何やったのかを見るのに便利。最近けっこう使う。git log --decorategit lにエイリアスしてる。コミットコメントだけ読む時用。git log --decorate --stat --patchgit lpにエイリアスしてる。git logよりもこれをよく使う。パッチ形式で変更を全て出す。pager=lessなので、lessで見ることになる。色々試した結果この出力に落ち着いた。
自作のサブコマンド
実行ファイルになってるコマンドは、PATHが通ってる所ににsymlinkして.gitconfigにこんな感じで書いて使ってる。
-
HEADにステージされた変更をamendする。あ、これ忘れてた、って時(しょっちゅうありますね…)に便利。Originally by @idesaku.
-
git topic-branchの略のつもり。HEADのコミットログをhyphenizeしてブランチを作成、チェックアウトする。1コミットしてやっぱブランチ切りたい!って時に便利。"Add missing translation"だと
add-missing-translationという名前のブランチができる。正しくコミットログを書いていてればブランチ名も正しくなるので良い。 -
git backupの略のつもり。
git tbしたあと元いたブランチに戻る。とりあえず現状でブランチ切っておきたい、という時に便利。
エイリアス
いくつかのコマンドは、こんな感じで1文字にエイリアスしてる。賛否両論なんだけど、一度試して欲しいです。特にsとm。
alias g='git' alias s='git s' alias m='git checkout master' alias d='git d'
所感
なぜかgit showを使う機会が増えた気がする。
自画自賛になるけどgit gsubとgit tbがライフチェンジングすぎてやばい。git renameも作った(内容はご想像の通り)が使い込んでないので載せなかった。
最近コミットコメントの3行目以降を努めて書くようにしてる。変更への想い・気持ち・感謝・コードからわからないコンテクストを込めている。実質的に変更箇所に書いた長文コメントと同じになる場合もあるんだけど、人はコードよりコミットコメントを先に読むので重複は気にせず書いてる。コードレビューへの予防線を張るのにも役立つ。
Add, Fix, Changeから始まるコミットコメントはコミットコメントスメルだと思って気をつけてる。「追加、直す、変える。そんなの変更管理してるんだから当たり前だろ!」と自分に言い聞かせて、もっとこの変更で何が起きるのか、具体的に表現する言葉を探すようにしてる。あんまりできてないけど。