先日Qiitaで以下の記事を見てこれでなにか作れないかなぁと思っていたのですが…
ふと思い立ってGitのブランチをチェックアウトするコマンドを作ってみました。
ブランチの一覧からチェックアウトしたいブランチをインクリメンタルサーチしてチェックアウトできるというもので、ローカルブランチの場合は普通にチェックアウト、リモートブランチの場合はローカルブランチを作成してチェックアウトしてくれます。
一応目的のモノは作れたのですが、元々は以下のようなシェルスクリプトを使って、pecoを使ってチェックアウトするブランチを選択できるようにしたものを使っていたのですが、これと比べるとなんだか使いにくい気がする。
function peco-git-checkout() { local BRANCH=`git branch -a | peco` if [[ -z "$BRANCH" ]]; then return fi if [[ "$BRANCH" =~ remotes/([^/]*)/(.*) ]]; then git checkout -b ${BASH_REMATCH[2]} ${BASH_REMATCH[1]}/${BASH_REMATCH[2]} else git checkout $BRANCH fi }
慣れの問題かもしれませんが…。うーん…。