blob: 4a5d11c7a414c4fac0fabc8780fecf273b3764da (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
[user]
name = Alexis Hovorka
email = alexisspacegirl@gmail.com
#signingkey =
[github]
user = alexisspacegirl
[url "https://github.com/"]
insteadOf = gh:
[url "github.com:"]
insteadOf = ghs:
[url "github.com:"]
insteadOf = sgh:
[url "https://gist.github.com/"]
insteadOf = gist:
[url "https://gitlab.com/"]
insteadOf = gl:
[url "https://bitbucket.org/"]
insteadOf = bb:
[url "https://aur.archlinux.org/"]
insteadOf = aur:
[url "git.ahov.co:"]
insteadOf = ahov:
[core]
editor = vim
excludesfile = ~/.gitignore_global
[init]
defaultBranch = main
[commit]
template = ~/.gitmessage
[credential]
helper = cache --timeout 3600
[merge]
tool = vimdiff
[push]
default = simple
[pull]
rebase = false
# ff = only
#[rerere]
# enabled = 1
# autoupdate = 1
#[status]
# submoduleSummary = true
[color]
ui = true
[color "branch"]
current = yellow reverse
local = green
remote = red
[color "diff"]
meta = black bold
frag = magenta
old = red
plain = white
new = green
whitespaces = red reverse
[color "status"]
added = green
changed = yellow
untracked = red
[alias]
new = "!git init && git symbolic-ref HEAD refs/heads/main"
this = !bash -c 'git root &>/dev/null && echo "Already a git repository" || (git new && git add . && git commit -m \"Initial commit\")'
root = rev-parse --show-toplevel
cloner = clone --recursive
rv = remote -v
ssh = "!ssh git.ahov.co"
rpush = "!f() { git remote add origin $*; git push -u origin main; }; f"
h = "!f() { git log $* | grep '^commit ' | cut -d' ' -f2; }; f" # Return a list of commit SHA1s
details = log -n1 -p --format=fuller # View the log and diff for a commit (previous if no SHA1 provided)
churn = !git log --all -M -C --name-only --format='format:' "$@" | sort | grep -v '^$' | uniq -c | sort | awk 'BEGIN {print "count,file"} {print $1 "," $2}'
hashlength = "!f() { git log --graph --topo-order --pretty='%h' $* | wc -L; }; f"
namelength = "!f() { git log --pretty='%an' $* | wc -L; }; f"
l = "!f() { git log --graph --topo-order --boundary --date=short --pretty=\"%>|($(git hashlength $*))%C(1)%h%Creset %C(2)%cd%Creset %<($(git namelength $*))%C(4)%an%Creset │ %s%C(16)%d%Creset\" $*; }; f"
la = !git l --all
ll = log --decorate --stat
lp = log --patch
d = diff # Current vs added
dc = diff --cached # Added vs committed
b = checkout -b
co = checkout
com = checkout master
pullr = pull --rebase
ra = rebase --abort
rc = rebase --continue
squash = rebase -i
br = branch -a
bv = branch -av
bd = branch -d
fetchp = fetch --prune
fetcha = fetch --all
mergef = merge --ff-only
s = stash # --keep-index || -u [-a] || --patch (interactive)
sl = stash list
sp = stash push
sd = stash drop
sa = stash apply
sb = stash branch
poop = stash pop
rmd = !git ls-files -z --deleted | xargs -0 git rm # Remove deleted files
addremove = !git rmd && git add . --all # Add and remove all changes
hard = reset --hard origin/master
unstage = reset HEAD --
pushallmaster = !git remote | xargs -L1 -I REMOTE git push REMOTE master
pushm = !git pushallmaster
pushf = push --force-with-lease # safe force pushing
pushfm = !git pushm --force-with-lease
export = archive -o latest.tar.gz -9 --prefix=latest/ # Save a repo as a tarball; git export master
amend = !git log -n 1 --pretty=tformat:%s%n%n%b | git commit -F - --amend # Same message, but include more added files
trim = !git reflog expire --expire=now --all && git gc --prune=now # Thin out older metadata, reduce filesystem footprint
spull = !git pull && git submodule sync --recursive && git submodule update --init --recursive
sspull= !git pull && git submodule update --init --recursive --remote
sfetch = submodule foreach 'git fetch --all'
brlocaloneline = !git branch | grep -v \\* | xargs
brdeletelocal = !git branch -D `git brlocaloneline` || echo "Nothing to delete"
brallfromremotes = !git branch -a | grep 'remotes/' | grep -v "HEAD" | sed 's/remotes\\///'
brcreatefromremotes = !git brallfromremotes | xargs git branch
sync = !git checkout master && git brdeletelocal && git fetch --all
# https://stackoverflow.com/questions/10610327/delete-all-local-git-branches#10610669
|