Posted at

git ls-tree

More than 3 years have passed since last update.

Gitにls-treeというサブコマンドがあったのを知ったのでメモ。


Terminal

$ git ls-tree -dr --name-only --full-name --full-tree HEAD


リポジトリ内の全ディレクトリが表示できる。っぽい。速い。


Terminal

$ git rev-parse --show-toplevel


でリポジトリのルートディレクトリの絶対パスが取得できるので、


.bashrc

peco-cd() {

cd "$(git ls-tree -dr --name-only --full-name --full-tree HEAD | sed -e "s|^|`git rev-parse --show-toplevel`/|" | peco)"
}

とか書いて


Terminal

$ peco-cd


でやったーって感じになる。


ターミナルだけじゃなくてunite.vimでもdirectory_rec/asyncの代わりに使いたい感じだ( ˘ω˘)