導入についてはコチラ↓
peco を導入した | DevAchieve
peco で色々フィルタリングして選択できるのは
ファイル、ハッシュ、ブランチを選択する事が多い Git と相性が良さそうです。
peco script を色々作るとエイリアスとか大変っぽいので
zsh のグローバルエイリアスを使ってみました。
編集されたファイルをフィルタリングする
function peco-git-changed-files(){ git status --short | peco | awk '{print $2}' }
alias -g F='$(peco-git-changed-files)'
使い方
git add FCtrl + Space で複数ファイル選択して add も可能です。
コミットのハッシュをフィルタリングする
function peco-git-hash(){ # git log --oneline --branches | peco | awk '{print $1}' git lg | peco | sed -e "s/^[\*\|][ |\\\/\*]*//g" | awk '{ print $1 }' }
alias -g F='$(peco-git-hash)'
[alias] lg = log --all --graph --decorate --onelinegit lg (log graph) は僕の git log を置き換えるコマンドです。
以下のようにコミットが確認できるので履歴確認、ブランチ確認、マージする際に便利なコマンドです。
peco ではこの色付けがなくなってしまうので残念です。頑張って保持して欲しいところ。
使い方
git diff F とか git cherry-pick F とか。おおよそコミットのハッシュを指定するところ全てで使えるんじゃないですかね?
git diff で複数選択とか便利です。
ブランチをフィルタリングする
function peco-git-branch(){ git branch | peco | sed -e "s/^\*[ ]*//g" }
alias -g B='$(peco-git-branch)'
使い方
git checkout B とかgit merge B とか
git diff B など。
参考
pecoでgit向けの汎用的なフィルターを2つ作成してみた - Qiita私のpeco活用事例 - k0kubun's blog