-
Notifications
You must be signed in to change notification settings - Fork 1
/
.gitconfig
117 lines (113 loc) · 4.02 KB
/
.gitconfig
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
[user]
email = [email protected]
name = Steven Sojka
[alias]
# View abbreviated SHA, description, and history graph of the latest 20 commits
l = log --pretty=oneline -n 20 --graph --abbrev-commit
# View the current working tree status using the short format
s = status -s
# Show the diff between the latest commit and the current state
d = "!git diff-index --quiet HEAD -- || clear; git --no-pager diff --patch-with-stat"
# `git di $number` shows the diff between the state `$number` revisions ago and the current state
di = "!d() { git diff --patch-with-stat HEAD~$1; }; git diff-index --quiet HEAD -- || clear; d"
# Pull in remote changes for the current repository and all its submodules
p = "!git pull; git submodule foreach git pull origin master"
# Clone a repository including all submodules
c = clone --recursive
# Commit all changes
ca = !git add -A && git commit -av
# Switch to a branch, creating it if necessary
go = checkout -B
# Checkout and pull
cop = "!c() { git checkout $1 && git pull origin $1;}; c"
# List all other branches
lob = "!git branch -a | awk '!/\\*/{print $1}' | sed s/'^remotes\\/origin\\/'// "
# Checkout another branch by fuzzy finding it
co = !git checkout $(git branch | fzf)
# Push current branch to remote
pc = "!git push origin $(git rev-parse --abbrev-ref HEAD) "
# Force push current branch to remote
pcf = "!git push -f origin $(git rev-parse --abbrev-ref HEAD) "
# Interactive rebase with the given number of latest commits
reb = "!r() { git rebase -i HEAD~$1; }; r"
lga = log --graph --oneline --all --decorate
lgb = log --graph --all --decorate --stat
ls = log --pretty=format: '%C(yellow)%h%Creset -%Cred %ad%Creset:%s %Cgreen[%an]' --decorate
lg = log --graph --pretty=format: '%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
last = log -1 HEAD
plc = !git fetch && git pull origin $(git rev-parse --abbrev-ref HEAD)
[apply]
# Detect whitespace errors when applying a patch
whitespace = fix
[core]
# Use custom `.gitignore` and `.gitattributes`
excludesfile = ~/.gitignore
attributesfile = ~/.gitattributes
editor = nvim
# Treat spaces before tabs, lines that are indented with 8 or more spaces, and
# all kinds of trailing whitespace as an error.
# [default] trailing-space: looks for spaces at the end of a line
# [default] space-before-tab: looks for spaces before tabs at the beginning of
# a line
whitespace = space-before-tab,indent-with-non-tab,trailing-space
pager = STEELVIM_MODE="git_pager" nvim -R
; pager = diff-so-fancy | less --tabs=4 -RFX
[color]
# Use colors in Git commands that are capable of colored output when
# outputting to the terminal. (This is the default setting in Git ≥ 1.8.4.)
ui = auto
pager = no
[color "branch"]
current = yellow reverse
local = yellow
remote = green
[color "diff"]
meta = yellow bold
frag = magenta bold
old = red bold
new = green bold
[color "status"]
added = yellow
changed = green
untracked = cyan
[merge]
# Include summaries of merged commits in newly created merge commit messages
log = true
tool = vimdiff
[diff]
tool = vimdiff
[difftool]
prompt = false
[difftool "vscode"]
cmd = code $LOCAL $REMOTE --diff --wait
trustExitCode = false
[mergetool "vscode"]
cmd = code $LOCAL $REMOTE --diff --wait
trustExitCode = false
[mergetool "vimdiff"]
cmd = STEELVIM_MODE=git_diff nvim -d $LOCAL $REMOTE $MERGED -c '$wincmd w' -c 'wincmd J'
[difftool "vimdiff"]
cmd = STEELVIM_MODE=git_diff nvim -d $REMOTE $LOCAL
# URL shorthands
[url "[email protected]:"]
insteadOf = gh:
pushInsteadOf = github:
pushInsteadOf = git://github.com/
[url "git://github.com/"]
insteadOf = github:
[url "[email protected]:"]
insteadOf = gst:
pushInsteadOf = gist:
pushInsteadOf = git://gist.github.com/
[url "git://gist.github.com/"]
insteadOf = gist:
[url "https://"]
insteadOf = git://
[push]
default = current
[include]
path = ~/.localgitconfig
[credential]
helper = cache
[trace2]
maxFiles = 800