Files
dotfiles/.functions/fcoc.sh
Stefan Imhoff a41290c297 feat(nix): nix and back again
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.
2024-08-07 17:49:02 +02:00

29 lines
766 B
Bash
Executable File

# fcoc - checkout git commit
fcoc() {
# 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
local commits commit
# Get commits
commits=$(git log --pretty=oneline --abbrev-commit --reverse) || return
# Use fzf to select a commit
commit=$(echo "$commits" | fzf --tac +s +m -e --preview 'git show --color=always {1}') || return
# Extract the commit hash
commit_hash=$(echo "$commit" | awk '{print $1}')
# Checkout the selected commit
if [ -n "$commit_hash" ]; then
echo "Checking out commit: $commit_hash"
git checkout "$commit_hash"
else
echo "No commit selected."
fi
}