mirror of
https://github.com/junegunn/fzf.git
synced 2025-11-19 09:03:43 -05:00
Fixed fco_preview to correctly show logs. Use git --format to remove dependency on grep, sed and awk. Show branches first. Colour change 'tag' to magenta (from red). Use bash syntax and remove echo at the end
18
Examples.md
18
Examples.md
@@ -439,17 +439,17 @@ fco() {
|
|||||||
# fco_preview - checkout git branch/tag, with a preview showing the commits between the tag/branch and HEAD
|
# fco_preview - checkout git branch/tag, with a preview showing the commits between the tag/branch and HEAD
|
||||||
fco_preview() {
|
fco_preview() {
|
||||||
local tags branches target
|
local tags branches target
|
||||||
tags=$(
|
|
||||||
git tag | awk '{print "\x1b[31;1mtag\x1b[m\t" $1}') || return
|
|
||||||
branches=$(
|
branches=$(
|
||||||
git branch --all | grep -v HEAD |
|
git --no-pager branch --all \
|
||||||
sed "s/.* //" | sed "s#remotes/[^/]*/##" |
|
--format="%(if)%(HEAD)%(then)%(else)%(if:equals=HEAD)%(refname:strip=3)%(then)%(else)%1B[0;34;1mbranch%09%1B[m%(refname:short)%(end)%(end)" \
|
||||||
sort -u | awk '{print "\x1b[34;1mbranch\x1b[m\t" $1}') || return
|
| sed '/^$/d') || return
|
||||||
|
tags=$(
|
||||||
|
git --no-pager tag | awk '{print "\x1b[35;1mtag\x1b[m\t" $1}') || return
|
||||||
target=$(
|
target=$(
|
||||||
(echo "$tags"; echo "$branches") |
|
(echo "$branches"; echo "$tags") |
|
||||||
fzf --no-hscroll --no-multi --delimiter="\t" -n 2 \
|
fzf --no-hscroll --no-multi -n 2 \
|
||||||
--ansi --preview="git log -200 --pretty=format:%s $(echo {+2..} | sed 's/$/../' )" ) || return
|
--ansi --preview="git --no-pager log -150 --pretty=format:%s '..{2}'") || return
|
||||||
git checkout $(echo "$target" | awk '{print $2}')
|
git checkout $(awk '{print $2}' <<<"$target" )
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user