summaryrefslogtreecommitdiff
path: root/dotfiles/system/.zshrc.d/git.sh
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-01-26 16:57:37 -0600
committerCraig Jennings <c@cjennings.net>2026-01-26 16:57:37 -0600
commit7d490453085ae084ce0e3875952eae1d3ad7b1ab (patch)
treed6f76ded02d541107271dc2b04cac34435c81a26 /dotfiles/system/.zshrc.d/git.sh
parentfeb8dfaae9b0172c9d24e7e0d115754a467b4627 (diff)
refactor(shell): reorganize shell config for proper separation
Restructure shell configuration to follow standard conventions: - .profile: Environment variables only (POSIX compatible) - .bash_profile: NEW - sources .profile and .bashrc for login shells - .bashrc: Bash-specific settings, sources .bashrc.d/ - .zshrc: Zsh-specific settings, sources .zshrc.d/ New modular directories: - .bashrc.d/: aliases, emacs, fzf, git, media, utilities - .zshrc.d/: same as bashrc.d plus arch-downgrade (zsh-only) - .profile.d/: reduced to env-only files (display, framework, auto-tmux) Fixes: - Remove duplicate .profile sourcing in .bashrc - Remove broken XDG_CURRENT_DESKTOP=GNOME line from display.sh - Move aliases/functions from .profile to appropriate .d/ directories - Shell-specific init (zoxide, fzf) now in .bashrc/.zshrc directly - FreeBSD bindkey fix now in .zshrc directly Also adds CLAUDE.md session context file. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'dotfiles/system/.zshrc.d/git.sh')
-rw-r--r--dotfiles/system/.zshrc.d/git.sh32
1 files changed, 32 insertions, 0 deletions
diff --git a/dotfiles/system/.zshrc.d/git.sh b/dotfiles/system/.zshrc.d/git.sh
new file mode 100644
index 0000000..6c2b6ad
--- /dev/null
+++ b/dotfiles/system/.zshrc.d/git.sh
@@ -0,0 +1,32 @@
+# git.sh
+# Craig Jennings <c@cjennings.net>
+# Git aliases and convenience functions
+
+# =============================================================================
+# Aliases
+# =============================================================================
+alias gitlog="git log --graph --pretty=format:'%Cred%h%Creset %an: %s - %Creset %C(yellow)%d%Creset %Cgreen(%cr)%Creset' --abbrev-commit --date=relative"
+alias gitstatus='git status -sb'
+alias gitcom='git commit -m'
+alias gitpp='git pull --prune'
+alias gittagbydate="git for-each-ref --sort=creatordate --format '%(refname) %(creatordate)' refs/tags"
+
+# =============================================================================
+# Functions
+# =============================================================================
+
+# Stash, pull, pop
+gitsp() {
+ git stash && git pull && git stash pop
+}
+
+# Checkout branch with fzf
+gitck() {
+ git checkout "$(git branch --all | fzf | tr -d '[:space:]')"
+}
+
+# Diff with fzf preview
+gitdiff() {
+ preview="git diff $@ --color=always -- {-1}"
+ git diff "$@" --name-only | fzf -m --ansi --preview "$preview"
+}