gitのブランチ移動を効率化

開発をしているとブランチの移動を行うことが多いが、いちいちブランチ名を確かめてコピペなどめんどくさい。なので簡単にするために以下のようにシェルのfunctionを定義しといた。

function co() { git branch | grep $1 | xargs git checkout }

これでブランチ名の一部を入れればローカルにあるブランチに移動できる。2つ以上のブランチがgrepにひっかかる場合はエラーになるものの、ある時期に頻繁に移動するブランチは限られていることが多いので一意な文字列になる部分を覚えておけばよい。

ついでに追跡ブランチから選んで移動する場合もあるので定義した。

function co-a() { git branch -a | grep $1 | cut -d'/' -f3- | xargs git checkout

一応コマンドの意味は
cut -d'/' -f3-:スラッシュで区切ったとき3番以降に来る文字列を出力
remote/origin/hogeであればhogeがとれる


その他、gitではないが便利なやつ

function find-grep() { find . -type f ! -name ".git" | xargs grep -n --binary-files=without-match $@ }

指定した文字列が含まれるファイルとその行数をカレントディレクトリ以下から探して表示してくれる

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界