diff --git a/git/aliases.config.fish b/git/aliases.config.fish index 6f9043a..c6a8d82 100644 --- a/git/aliases.config.fish +++ b/git/aliases.config.fish @@ -7,145 +7,146 @@ abbr -a g --position command git ################################################################################ function git_develop_branch - command git rev-parse --git-dir &>/dev/null || return - set -l branch + command git rev-parse --git-dir &>/dev/null || return + set -l branch - for branch in dev devel develop development - if command git show-ref -q --verify refs/heads/$branch - echo $branch - return 0 + for branch in dev devel develop development + if command git show-ref -q --verify refs/heads/$branch + echo $branch + return 0 + end end - end - echo develop - return 1 + echo develop + return 1 end function git_main_branch - command git rev-parse --git-dir &>/dev/null || return - set -l ref + command git rev-parse --git-dir &>/dev/null || return + set -l ref - for ref in - refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default,master} - if command git show-ref -q --verify $ref - echo (basename $ref) - return 0 + for ref in + refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default,master} + if command git show-ref -q --verify $ref + echo (basename $ref) + return 0 + end end - end - echo main - return 1 + echo main + return 1 end function git_current_branch - set -l ref (git symbolic-ref --quiet HEAD 2>/dev/null) - set -l ret $status + set -l ref (git symbolic-ref --quiet HEAD 2>/dev/null) + set -l ret $status - if [ $ret -ne 0 ] - [ $ret -eq 128 ] && return # no git repo - set ref (git rev-parse --short HEAD 2>/dev/null) || return - end + if [ $ret -ne 0 ] + [ $ret -eq 128 ] && return # no git repo + set ref (git rev-parse --short HEAD 2>/dev/null) || return + end - echo (string replace "refs/heads/" "" $ref) + echo (string replace "refs/heads/" "" $ref) end ################################################################################ # Staging # ################################################################################ -abbr -a ga --position command "git add" -abbr -a gaa --position command "git add --all" +abbr -a ga --position command "git add" +abbr -a gaa --position command "git add --all" # Interactively stage parts of a file. abbr -a gapa --position command "git add --patch" -abbr -a gdl --position command "git diff" -abbr -a gdls --position command "git diff --staged" -abbr -a gdlw --position command "git diff --word-diff" # show diff by word +abbr -a gdl --position command "git diff" +abbr -a gdls --position command "git diff --staged" +abbr -a gdlw --position command "git diff --word-diff" # show diff by word abbr -a gdlsw --position command "git diff --staged --word-diff" set exclude ":(exclude)package-lock.json" ":(exclude)*.lock" function gd --wraps "git diff" - git diff $argv $exclude + git diff $argv $exclude end function gds --wraps "git diff" - git diff --staged $argv $exclude + git diff --staged $argv $exclude end function gdw --wraps "git diff" - git diff --word-diff $argv $exclude + git diff --word-diff $argv $exclude end function gdsw --wraps "git diff" - git diff --staged --word-diff $argv $exclude + git diff --staged --word-diff $argv $exclude end -abbr -a gst --position command "git status" +abbr -a gst --position command "git status" abbr -a gsts --position command "git status --short" ################################################################################ # Committing # ################################################################################ -abbr -a gc --position command "git commit" -abbr -a "gc!" --position command "git commit --amend" -abbr -a "gcn!" --position command "git commit --no-edit --amend" -abbr -a gca --position command "git add --all && git commit" -abbr -a "gca!" --position command "git commit -a --amend" +abbr -a gc --position command "git commit" +abbr -a "gc!" --position command "git commit --amend" +abbr -a "gcn!" --position command "git commit --no-edit --amend" +abbr -a gca --position command "git add --all && git commit" +abbr -a "gca!" --position command "git commit -a --amend" abbr -a "gcan!" --position command "git commit -a --no-edit --amend" -abbr -a gcam --position command "git commit -a -m" -abbr -a gcmsg --position command "git commit -m" +abbr -a gcam --position command "git commit -a -m" +abbr -a gcmsg --position command "git commit -m" +abbr -a gcfu --position command "git commit --fixup" -abbr -a grev --position command "git revert" +abbr -a grev --position command "git revert" # Update the last commit with all staged changes. -abbr -a gu --position command "git commit --amend" -abbr -a "gu!" --position command "git commit --amend --no-edit" +abbr -a gu --position command "git commit --amend" +abbr -a "gu!" --position command "git commit --amend --no-edit" # Update the last commit with all local changes. -abbr -a gua --position command "git add --all && git commit --amend" -abbr -a "gua!" --position command "git add --all && git commit --amend --no-edit" +abbr -a gua --position command "git add --all && git commit --amend" +abbr -a "gua!" --position command "git add --all && git commit --amend --no-edit" ################################################################################ # Working Dir & Index Manipulation # ################################################################################ -abbr -a gco --position command "git checkout" +abbr -a gco --position command "git checkout" -abbr -a grt --position command "git reset" +abbr -a grt --position command "git reset" # grt -- [] - undo but keep changes in working dir. -abbr -a grts --position command "git reset --soft" +abbr -a grts --position command "git reset --soft" # Undo commits and stage their changes. -abbr -a grs --position command "git restore --worktree" +abbr -a grs --position command "git restore --worktree" # grs - revert local changes for . # (--worktree is the default behavior, but included here for clarity). -abbr -a grss --position command "git restore --worktree --source" +abbr -a grss --position command "git restore --worktree --source" # grss - revert to "s version. -abbr -a grst --position command "git restore --staged" +abbr -a grst --position command "git restore --staged" # grst - unstage abbr -a grsts --position command "git restore --staged --source" # See grss, but for s. -abbr -a grsa --position command "git restore --worktree --staged" +abbr -a grsa --position command "git restore --worktree --staged" # grsa - discard all changes for , both staged and unstaged. abbr -a grsas --position command "git restore --worktree --staged --source" -abbr -a grm --position command "git rm" +abbr -a grm --position command "git rm" # Remove paths from index & working dir. -abbr -a grmc --position command "git rm --cached" +abbr -a grmc --position command "git rm --cached" # Unstage & remove only from index; leave in working dir. # grmc - where is already tracked: stages the removal of -abbr -a gsta --position command "git stash push" +abbr -a gsta --position command "git stash push" # Save changes; add --message to label stash. abbr -a gstaa --position command "git stash push --include-untracked" @@ -156,18 +157,17 @@ abbr -a gstas --position command "git stash show --text" # --text treats all files as text. function gwip - git add -A - git rm (git ls-files --deleted) 2> /dev/null - git commit --no-verify --no-gpg-sign --message "🚧 --wip-- [skip ci]" + git add -A + git rm (git ls-files --deleted) 2>/dev/null + git commit --no-verify --no-gpg-sign --message "🚧 --wip-- [skip ci]" end function gunwip - git rev-list --max-count=1 --format="%s" HEAD | \ - grep -q "🚧 --wip--" \ - && git reset HEAD~1 + git rev-list --max-count=1 --format="%s" HEAD | grep -q "🚧 --wip--" \ + && git reset HEAD~1 end -abbr -a gcl --position command "git clean -f" +abbr -a gcl --position command "git clean -f" # Remove unknown (untracked and unignored) files. abbr -a gcldr --position command "git clean --dry-run" @@ -176,26 +176,26 @@ abbr -a gcldr --position command "git clean --dry-run" # Branches # ################################################################################ -abbr -a gb --position command "git branch" -abbr -a gcb --position command "git checkout -b" -abbr -a gcm --position command "git checkout $(git_main_branch)" -abbr -a gcd --position command "git checkout $(git_develop_branch)" +abbr -a gb --position command "git branch" +abbr -a gcb --position command "git checkout -b" +abbr -a gcm --position command "git checkout $(git_main_branch)" +abbr -a gcd --position command "git checkout $(git_develop_branch)" -abbr -a gm --position command "git merge" +abbr -a gm --position command "git merge" abbr -a gmtl --position command "git mergetool --no-prompt" -abbr -a gma --position command "git merge --abort" +abbr -a gma --position command "git merge --abort" ################################################################################ # History Manipulation # ################################################################################ -abbr -a gbs --position command "git bisect" +abbr -a gbs --position command "git bisect" abbr -a gbsb --position command "git bisect bad" abbr -a gbsg --position command "git bisect good" abbr -a gbsr --position command "git bisect reset" abbr -a gbss --position command "git bisect start" -abbr -a grb --position command "git rebase" +abbr -a grb --position command "git rebase" abbr -a grbi --position command "git rebase --interactive" abbr -a grbo --position command "git rebase --onto" abbr -a grba --position command "git rebase --abort" @@ -208,36 +208,36 @@ abbr -a grbm --position command "git rebase $(git_main_branch)" # Interaction with Remote # ################################################################################ -abbr -a gp --position command "git push" -abbr -a gpv --position command "git push -v" -abbr -a gpd --position command "git push --dry-run" -abbr -a gpf --position command "git push --force-with-lease --force-if-includes" -abbr -a gpfv --position command "git push --force-with-lease --force-if-includes -v" -abbr -a "gpf!" --position command "git push --force" +abbr -a gp --position command "git push" +abbr -a gpv --position command "git push -v" +abbr -a gpd --position command "git push --dry-run" +abbr -a gpf --position command "git push --force-with-lease --force-if-includes" +abbr -a gpfv --position command "git push --force-with-lease --force-if-includes -v" +abbr -a "gpf!" --position command "git push --force" abbr -a "gpfv!" --position command "git push --force -v" -abbr -a gf --position command "git fetch" +abbr -a gf --position command "git fetch" -abbr -a gfa --position command "git fetch --all --prune" +abbr -a gfa --position command "git fetch --all --prune" # Fetch all & remove invalid remote refs. -abbr -a gpl --position command "git pull" -abbr -a gplr --position command "git pull --rebase" +abbr -a gpl --position command "git pull" +abbr -a gplr --position command "git pull --rebase" ################################################################################ # Logs # ################################################################################ # Current branch. -abbr -a gl --position command "git log --pretty=lc --graph" -abbr -a glo --position command "git log --pretty=lo --graph --date=human" -abbr -a gls --position command "git log --pretty=lo --graph --date=human --simplify-by-decoration" -abbr -a glf --position command "git log --pretty=lf --graph" -abbr -a gld --position command "git log --pretty=lf --graph --cc --stat" -abbr -a glp --position command "git log --pretty=lf --graph --cc --patch" +abbr -a gl --position command "git log --pretty=lc --graph" +abbr -a glo --position command "git log --pretty=lo --graph --date=human" +abbr -a gls --position command "git log --pretty=lo --graph --date=human --simplify-by-decoration" +abbr -a glf --position command "git log --pretty=lf --graph" +abbr -a gld --position command "git log --pretty=lf --graph --cc --stat" +abbr -a glp --position command "git log --pretty=lf --graph --cc --patch" # All branches on all remotes. -abbr -a gla --position command "git log --pretty=lc --graph --all" +abbr -a gla --position command "git log --pretty=lc --graph --all" abbr -a glao --position command "git log --pretty=lo --graph --all --date=human" abbr -a glas --position command "git log --pretty=lo --graph --all --date=human --simplify-by-decoration" abbr -a glaf --position command "git log --pretty=lf --graph --all" @@ -249,9 +249,9 @@ abbr -a glap --position command "git log --pretty=lf --graph --all --cc --patch" ################################################################################ function gprevision -a N path - git checkout \ - (git log --online $path | awk -v commit="$N" "FNR == -commit+1 {print $N}") \ - $path + git checkout \ + (git log --online $path | awk -v commit="$N" "FNR == -commit+1 {print $N}") \ + $path end # gprevision # Checkout the th revision (counting backwards from HEAD) of . @@ -260,7 +260,7 @@ end # gprevision -1 example.txt function gnevermind - reset --hard HEAD && git clean -df + reset --hard HEAD && git clean -df end ################################################################################