2014年、春のGit事情
なんとなく最近どんな感じでGitを使っているか、適当にリストアップしてみた。
よく使うやつ
git status
git 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 show
HEAD
のコミットログとDiffを表示。ついさっき何やったのかを見るのに便利。最近けっこう使う。git log --decorate
git l
にエイリアスしてる。コミットコメントだけ読む時用。git log --decorate --stat --patch
git 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から始まるコミットコメントはコミットコメントスメルだと思って気をつけてる。「追加、直す、変える。そんなの変更管理してるんだから当たり前だろ!」と自分に言い聞かせて、もっとこの変更で何が起きるのか、具体的に表現する言葉を探すようにしてる。あんまりできてないけど。