git-now

git-nowはコミットメッセージを勝手に現在時刻にして、コミットしてくれるコマンド。
一時コミットするやつですね。

とりあえずコミットするのは賛否両論ありますが、コミットしないリスクを考えると雑にでもコミットしたほうが良さげ。

$ brew install git-now

Macならこれで入ります。設定は~/.gitconfigにこんな感じで。

n  = now --all --stat

aliasの文字はご自由に。 これでaddからコミットまで自動でやってくれます。

tig

tigから git rebase -i したらいろいろ捗ったを参考にtigからrebaseをできるように。
tigはターミナル上でコミットツリーをいいかんじにしてくれる。

$ brew install tig

tigもこれでOK。 そして~/.tigrcに以下を記述します。

bind main C !git rebase -i %(commit)
bind diff C !git rebase -i %(commit)

こちらも文字はご自由に。 自分はcommitのCにしてます。
これでtig上のわかりやすいコミットツリーでrebaseできます。
ちなみに選択したコミットより最新のものは全部編集できます。

git logs

gitのデフォルトのlogって見にくいので、いろいろ試した結果これが一番かっこよくなります。
これも〜/.gitconfigに記述。
aliasもなんでもいいですが、logとかだと競合するので別のものがオススメ。

logs = log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

こうすると

* 2fe4f9b - (HEAD -> master) [from now] 2015/07/09 07:58:32 (14 minutes ago) <名前>
* 85530f8 - (origin/master) [from now] 2015/07/09 03:17:49 (5 hours ago) <名前>

みたいな感じに出力されます。 tree表示されるので、ブランチごとの分岐もわかりやすいです。