mirror of
https://github.com/paulirish/git-recent.git
synced 2026-09-10 07:26:16 -04:00
add fzf powered git browse. incl all of git recent and trigger for diffbranch
This commit is contained in:
parent
8d67039988
commit
cfd00de858
30
git-browse
Executable file
30
git-browse
Executable file
|
|
@ -0,0 +1,30 @@
|
||||||
|
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# git recent but with a FZF preview of the branch diff.
|
||||||
|
|
||||||
|
branches_format="%(color:yellow)%(refname:short)%(color:reset)"
|
||||||
|
commits_format="%C(red bold)%h %C(bold blue)%an %C(bold green)%ad %Creset%s"
|
||||||
|
|
||||||
|
# This relies on my own git aliases. see .gitconfig
|
||||||
|
stat_cmd="git diff --color=always --stat origin/$(git mainormaster)...{}"
|
||||||
|
diffcommits_cmd="git log --date=human --color=always --format='$commits_format' --no-merges origin/$(git mainormaster)..{1}"
|
||||||
|
diffbranch_cmd="git diffbranch-that {} | delta"
|
||||||
|
|
||||||
|
# fzf basic inspiration:
|
||||||
|
# - https://github.com/junegunn/fzf/wiki/Examples#git, https://github.com/junegunn/fzf/wiki/Examples-(fish)#git
|
||||||
|
# Hardcore inspiration:
|
||||||
|
# - https://github.com/junegunn/fzf-git.sh
|
||||||
|
|
||||||
|
git for-each-ref --color=always --sort=-committerdate "refs/heads/" --format="$branches_format" \
|
||||||
|
| fzf-tmux --ansi -p80%,60% -- \
|
||||||
|
--layout=reverse --multi --height=90% --min-height=20 \
|
||||||
|
--border-label-pos=2 --border-label '🌲 Branches' --border \
|
||||||
|
--no-hscroll --no-multi \
|
||||||
|
--preview-window='right,80%,border-left,border-rounded' --preview="$diffcommits_cmd" --preview-label="Commits unique to branch" \
|
||||||
|
--header $'CTRL-O (show branch diff)\n\n' \
|
||||||
|
--bind "ctrl-o:execute:$diffbranch_cmd"
|
||||||
|
|
||||||
|
# Checkout the selected item
|
||||||
|
# git checkout (echo $target | awk '{print $2}')
|
||||||
|
|
||||||
Loading…
Reference in a new issue