Git 勉強会に行ってきたよ
会では全然Git の話とかしてなかった気もしましすが,
なんか名指しされたので Git 関連の今の自分の設定的な話を
一回まとめて晒しておこうかな.と思います.
最初に設定するような人は参考にしてもいいかもしれません.
自分は Zsh と Emacs 派なので,Git 関連は以下を使っています.
.gitconfig の alias
Git はデフォルトだと短いサブコマンドが使えません.
そこでSubversion でも使っていた感じで使えるよう適当にalias しています.
# $HOME/.gitconfig [alias] st = status ci = commit co = checkout br = branch dif = diff
diff は,di だと ci を打ち間違えそうだし,df だと
イメージとして df コマンドが思い浮かぶので,dif と
あまり短くない感じになっています.
この辺は好みで.
Zsh の補完機能
Zsh は補完機能が豊富なので,とりあえず compinit だけでも使えます.
#!/usr/bin/env zsh # .zshrc の設定 # 補完設定 autoload -Uz compinit; compinit # 自前で用意した関数用の設定 typeset -U fpath fpath=(~/.zfunctions/Completion ${fpath})
自分の場合は,最近 git submodules を覚えたので,
それ補完してくれる設定を使っています.
それについては d:id:clairvy:20100909:1283982598 を参照のこと.
で,良いのを見付けたので,http://gist.github.com/591626 を
使おうと思っています.これを.zshrc からロードするようにすればOK.
$HOME/.zfunctions/Completion/_git
ファイルを置いています.
vcs_info - プロンプトに branch 名を表示
トピックブランチを切るようになると,ブランチをコロコロ切り替えるので,
現在の居るブランチを知りたいと思うようになります.
git br で毎回調べるのもいいですが,
Zsh ならプロンプトに出しておくのもいいでしょう.
#!/usr/bin/env zsh # プロンプト用 setopt prompt_subst autoload -U colors; colors if [[ $ZSH_VERSION == 4.3.* ]]; then # 今だとあまり無いけど,一応古いもの対策 autoload -Uz vcs_info zstyle ':vcs_info:*' formats '(%s)-[%b]' zstyle ':vcs_info:*' actionformats '(%s)-[%b|%a]' precmd () { psvar=() LANG=en_US.UTF-8 vcs_info [[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_" } fi
参考
- man zshcontrib
以前,一つ前のブランチに戻りたいという要望を見た気がするので,
cd - 的な git co - 的な機能もあってもいいかなー.と
今妄想中だったりします.
と思って検索したらあったので設定しました.
これは,submodule の設定も含んでいるので,.zshrc からロードしています.
参考
Egg
Emacs は Egg.el を使っています.
コマンドラインで Chunk を扱うコマンドは全然覚えてませんが,
一部をstaging したり,undo するときには結構便利に使っています.
;;; git(egg) (setq egg-git-command "/opt/local/bin/git") ; MacPorts 版の git を使う (setq load-path (cons (concat home "/.emacs.d/egg") ; egg へのパス load-path)) (require 'egg)
上記設定で,M-x egg-status で差分が出るので,
その変更に対して,staging したりコミットしたりできます.
C-x v b でブランチ作成とか,C-x v ~ でチェックアウトとかできるけど,
自分はコマンドラインで確認しながらやることが多いです.
gisty
gist を使うときには,コマンドラインで gisty というコマンドを使っています.
これを使ってpost してから,更に変更を加えて,
というパターンが多いです.
gisty も補完してくれるよう設定してあります.
が $HOME/.zfunctions/Completion/_gisty に置いてあります.
参考