git log를 fzf에 넣고 commiit의sha를 빠르게 선택하고 싶어요.

2615 단어 GitZshfzftech
가끔 만나고 싶은 그 commiit의sha에 편리한fzf.프리뷰도 볼 수 있어요.
zsh 환경 구상.

select_commit_from_git_log() {
  git log -n1000 --graph --color=always --format="%C(auto)%h%d %s %C(black)%C(bold)%cr" "$@" |\
    fzf -m --ansi --no-sort --reverse --tiebreak=index --preview 'f() {
      set -- $(echo "$@" | grep -o "[a-f0-9]\{7\}" | head -1);
      if [ $1 ]; then
        git show --color $1
      else
        echo "blank"
      fi
    }; f {}' |\
    grep -o "[a-f0-9]\{7\}" |
    tr '\n' ' '
}
function insert_selected_git_logs(){
    LBUFFER+=$(select_commit_from_git_log)
    CURSOR=$#LBUFFER
    zle reset-prompt
}
zle -N insert_selected_git_logs
bindkey "^gl" insert_selected_git_logs
cherry-pick 앱이라면 --all까지 추가할 수 있다.
참고 자료
https://gist.github.com/junegunn/f4fca918e937e6bf5bad

좋은 웹페이지 즐겨찾기