.bashrc
なり.zshrc
なりに下記の関数を用意する
※setopt ksharrays
はzshの場合のみ記述する(zshの配列インデックスはデフォルトだと1ベースなので0ベースに変更する為のオプションがksharrays
)
function git-pdi() {
setopt ksharrays # 0 base array index for zsh
HASHES=($(git log --pretty="format:%ad %h (%an): %s" --date=iso | peco | awk '{print $4}'))
if [ ${#HASHES[@]} -eq 2 ]
then
git diff ${HASHES[1]}..${HASHES[0]}
else
echo "selected commit count must be 2, but ${#HASHES[@]}"
fi
}
git-pdi
を実行すると、pecoを起動し行単位でコミットの概要が表示されるので、Ctrl+Space
で対象コミットを2つ選択してEnter
2つ目に選択したコミット → 1つ目に選択したコミット、という比較結果が表示される