aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/home
diff options
context:
space:
mode:
Diffstat (limited to 'home')
-rw-r--r--home/.config/git/config75
1 files changed, 34 insertions, 41 deletions
diff --git a/home/.config/git/config b/home/.config/git/config
index 4649d7b..9e538a6 100644
--- a/home/.config/git/config
+++ b/home/.config/git/config
@@ -51,18 +51,24 @@
[tag]
gpgSign = true
[status]
+ short = true
+ branch = true
showUntrackedFiles = all
+ showStash = true
submoduleSummary = true
[help]
autocorrect = 1
[log]
abbrevCommit = true
+ date = short
[interactive]
singleKey = true
diffFilter = delta --color-only
[advice]
detachedHead = false
skippedCherryPicks = false
+[format]
+ pretty = oneline
[delta]
navigate = true
features = gruvmax-fang zebra-dark
@@ -74,58 +80,45 @@
[absorb]
autoStageIfNothingStaged = true
[alias]
- cl = clone
- br = branch -vv
+ ghost-rebase = "!sh -c 'b=$0; u=${1:-origin/master}; wt=$(mktemp -d -t rebwt.XXXXXX); git worktree add -f "$wt" "$b"; git -C "$wt" rebase "$u" || echo "Rebase incomplete"; git worktree remove --force "$wt"'"
+ a = add
+ ab=absorb --and-rebase
+ b = branch -vv
+ bd = branch -D
c = commit
ca = commit --amend --no-edit
- cp = cherry-pick
- sw = switch --recurse-submodules
- swc = switch --recurse-submodules -c
- swd = switch --recurse-submodules -d
- rt = restore
- res = reset
- s = status --branch --short
+ d = diff
+ dft = -c diff.external=difft diff
+ dl = -c diff.external=difft log -p --ext-diff
+ ds = -c diff.external=difft show --ext-diff
+ dt = difftool
+ f = fetch
+ fa = fetch --all
+ ff = merge --ff-only
+ find-merge = "!sh -c 'commit=$0 && branch=${1:-HEAD} && (git rev-list $commit..$branch --ancestry-path | cat -n; git rev-list $commit..$branch --first-parent | cat -n) | sort -k2 -s | uniq -f1 -d | sort -n | tail -1 | cut -f2'"
+ fp = push --force-with-lease
+ gone = !git for-each-ref --format '%(refname:short) %(upstream:track)' | awk '$2 == \"[gone]\" {print $1}' | xargs -r git branch -D
+ l = log
+ lm = log --pretty=medium
m = merge
mt = mergetool
- ff = merge --ff-only
+ p = push
r = rebase
- rb = rebase
+ re = remote -v
ri = rebase -i
- p = push
- fp = push --force-with-lease
- f = fetch
- fa = fetch --all
- d = diff
- staged = diff --cached
- dt = difftool
- a = add
+ rt = restore
+ s = status
+ st = status --no-short
stage = add
- st = add
+ staged = diff --cached
sub = submodule
subf = submodule foreach
- re = remote -v
- ra = remote add
- rs = remote set-url
- rr = remote remove
- st = stash
- sp = stash pop
- sd = stash drop
- sl = stash list
- ss = stash show
- del = branch -D
- unstage = reset HEAD --
- last = log -1 HEAD
+ sw = switch
+ swc = switch -c
+ swd = switch -d
undo = reset --hard
- l = log --abbrev-commit -200 --graph --date=short --pretty=oneline
+ unstage = reset HEAD --
update=!git fetch && git merge --ff-only
- fr=!git fetch && git rebase
- find-merge = "!sh -c 'commit=$0 && branch=${1:-HEAD} && (git rev-list $commit..$branch --ancestry-path | cat -n; git rev-list $commit..$branch --first-parent | cat -n) | sort -k2 -s | uniq -f1 -d | sort -n | tail -1 | cut -f2'"
- gone = !git for-each-ref --format '%(refname:short) %(upstream:track)' | awk '$2 == \"[gone]\" {print $1}' | xargs -r git branch -D
- ab=absorb --and-rebase
- # `git log` with patches shown with difftastic.
- dl = -c diff.external=difft log -p --ext-diff
- ds = -c diff.external=difft show --ext-diff
- dft = -c diff.external=difft diff
[includeIf "gitdir:/home/*/work/"]
path = config-work
[includeIf "gitdir:~/doxfiles/.git"]