mirror of
https://github.com/kogakure/dotfiles.git
synced 2026-02-03 20:25:30 +00:00
I tried Nix, but it had too many downsides so I removed it. 1. Didn't like that all files are immutable and simple config changes need a complete rebuild. 2. Setting up a new Mac didn't work as smoothly as promised. Not worth the effort. 3. It sucked a lot to always have to type in the password twice on each darwin-rebuild 4. It solves problems I never had.
26 lines
923 B
Bash
26 lines
923 B
Bash
# fshow - git commit browser
|
|
|
|
fshow() {
|
|
# Check if we're in a git repository
|
|
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
echo "Error: Not in a git repository"
|
|
return 1
|
|
fi
|
|
|
|
# Define the git log format
|
|
local log_format="%C(auto)%h%d %s %C(black)%C(bold)%cr"
|
|
|
|
# Use git log to get the commit history and pipe it to fzf
|
|
git log --graph --color=always --format="$log_format" "$@" |
|
|
fzf --ansi --no-sort --reverse --tiebreak=index \
|
|
--bind=ctrl-s:toggle-sort \
|
|
--bind=ctrl-d:preview-page-down \
|
|
--bind=ctrl-u:preview-page-up \
|
|
--preview 'grep -o "[a-f0-9]\{7,\}" <<< {} | xargs git show --color=always' \
|
|
--bind "ctrl-m:execute:
|
|
(grep -o '[a-f0-9]\{7,\}' | head -1 |
|
|
xargs -I % sh -c 'git show --color=always % | less -R') << 'FZF-EOF'
|
|
{}
|
|
FZF-EOF"
|
|
}
|