gitshでgitのタイプ数を減らす
gitはサブコマンドやオプションが多い.だからshellのaliasやらgitのaliasで頑張ってコマンドのタイプ数を減らす.Thoughbotの@georgebrockさんのgitshを使えばもっとコマンドのタイプ数を減らすことができる.
例えば以下はよく打つコマンド.git
って打ち過ぎ.
$ git status
$ git add -u
$ git commit -m "Commit message"
$ git push
gitshを使うと専用のモードへのアタッチが始まり,git
を打たずサブコマンドだけを打てばよくなる.
$ gitsh
gitsh@ status
gitsh@ add -u
gitsh@ commit -m "Commit message"
gitsh@ push
gitsh@ :exit
gitのaliasも引き継がれるので,例えば以下のようなaliasを設定してしておくと,さらにタイプ数を減らすことができる.
#.gitconfig
[alias]
au = add -u
cm = commit -m
p = push
$ gitsh
gitsh@ ⏎ # status
gitsh@ au
gitsh@ cm "Commit message"
gitsh@ p
gitsh@ :exit
サブコマンドなしで⏎ (return)するとデフォルトではgit status
が表示される.デフォルのコマンドは以下で変更可能.
gitsh@ config --global gitsh.defaultCommand "status -s"
もっと減らす.
#.zshrc
alias g="gitsh"
インストールはOSXならHomebrew経由でいける.
$ brew tap thoughtbot/formulae
$ brew install gitsh
tmuxのsplit-windowと連携するのも良さそう.以下のようにすれば,”Prefix+C-g”で画面分割してgitshモードへ入る.(@958さんありがとうございます.)
#.tmux.conf
bind C-g split-window -v -p 20 'exec gitsh'
gitのコマンドは連続で打つこと多いので理にかなってるツールだと思う.aliasが引き継がれるので移行も楽.他にも,一時的にconfigの設定(user.name
やuser.email
)を切り替えたり,プロンプトにブランチとかの情報を表示したり,普通のshellのように環境変数を設定したり,hubコマンド使ったりもできる.
参考