[alias] a = "add" aa = "add ." aliases = "! f(){ TOP=$(expr $(grep -n "^\\\\[alias" ~/.gitconfig | sed -e 's|:.*||') + 1) && for LINE_NUMBER in $(grep -n "^\\\\[" ~/.gitconfig | sed -e 's|:.*||'); do [ $TOP -lt $LINE_NUMBER ] && BOTTOM= $(expr $LINE_NUMBER - 2 ) && break; done; sed -n "${TOP},${BOTTOM}p" ~/.gitconfig; }; f | sed -e 's|^ ||'" ap = "add -p" b = "! git for-each-ref --sort='-authordate' --format='%(authordate)%09%(objectname:short)%09%(refname)' refs/heads | sed -e 's|refs/heads/||'" bD = "branch -D" ba = "branch -a" bc = "branch -c" bd = "branch -d" br = "branch -r" c = "! git commit --verbose; git push" ca = "! git c --amend" cf = "! git commit --verbose; git push --force" ch = "switch -C" change = "switch -C" cl = "clone" cm = "commit -m" co = "checkout " cp = "cherry-pick ; usually abusive; sometimes necessary" create = "! git bc" d = "diff" dc = "diff --cached" ds = "diff --stat" expire = "! git fsck --unreachable --dangling --no-reflogs; git reflog expire --expire=now --all; git gc --prune=now" f = "fetch" fe = "fetch" filelog = "log --patch" find = "! git ls-files | grep -i" fl = "log --patch" fp = "fetch --prune ; removes branches not in upstream" gr = "grep -Ii" grep = "grep -Ii" greproot = "! git grr" grr = "! f() { ROOT=$(git rev-parse --show-toplevel) && cd $ROOT && git grep --full-name -In $1 | xargs -I{} echo $ROOT/{}; }; f" invert = "revert" l = "log --oneline --graph --decorate --parents" lasttag = "describe --tags --abbrev=0" ll = "log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat" lref = "log --oneline --graph --decorate --parents --reflog" ls = "log --pretty=format:"%C(yellow)%h\\ %ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=short" lt = "describe --tags --abbrev=0" mailmap = "! f(){ printf \"$(git config user.name) <$(git config user.email)> <${1}>\" > mailmap; git filter-repo --force --mailmap mailmap; }; f" one = "log -1 ; no input displays HEAD" pd = "push -d" pf = "push --force" pl = "pull" pp = "pull --prune ; removes branches not in upstream" pr = "pull --rebase ; rebases commits onto upstream" ps = "push" pt = "! f(){ git push $1 tag $2; }; f" r = "rebase" ra = "rebase --skip" rc = "rebase --continue" re = "restore" ref = "reflog" ri = "rebase --interactive" rm = "rm -r" rmf = "! git rm --force" rq = "rebase --quit" rs = "rebase --abort" sh = "show" st = "status" sw = "switch ; new checkout - only switching branch w/o restoring worktree" sync = "! git fe upstream; git rebase upstream/main; git push" t = "tag" td = "tag --delete" un = "restore --staged --worktree" uncommit = "switch -C" undo = "restore --staged --worktree" undo-specific = "! f(){ git restore --source=\"$1\" $2; }; f" undo-stage = "restore" undo-unstaged = "restore" undo-work = "restore --staged --worktree" undo-wt = "restore --staged --worktree" unstage = "restore --staged" wa = "! f(){ git worktree add ../$1 $1; }; f" wc = "! f(){ PROJ=$(printf $1 | sed -e 's|.*/||' | sed -e 's|.git||'); mkdir $PROJ; cd $PROJ; if git ls-remote $1 | grep -q "main"; then BRANCH="main"; elif git ls-remote $1 | grep -q "master"; then BRANCH="master"; elif git ls-remote $1 | grep -q "trunk"; then BRANCH="trunk"; fi; git clone $1 $BRANCH; }; f" wcreate = "! git wc" wmv = "worktree move" wnew = "! f(){ git worktree add ../$1; cd ../$1; git push --set-upstream origin $1; }; f" wr = "worktree remove" wrm = "! git wr" wsc = "! f(){ PROJ=$(printf $1 | sed -e 's|.*/||' | sed -e 's|.git||'); mkdir $PROJ; cd $PROJ; if git ls-remote $1 | grep -q "main"; then BRANCH="main"; elif git ls-remote $1 | grep -q "master"; then BRANCH="master"; elif git ls-remote $1 | grep -q "trunk"; then BRANCH="trunk"; fi; git clone --depth=1 --single-branch $1 $BRANCH; }; f" wshallow = "! git wsc" [branch] autosetuprebase = "always" [color] branch = "auto" diff = "auto" status = "auto" [commit] gpgsign = "true" [gpg] format = "ssh" [user] email = "amad@atl.tools" name = "Artur Manuel" signingKey = "~/.ssh/id_ed25519.pub" [init] defaultBranch = "main" [credential] helper ="git-credential-libsecret"