blob: 29851fccd5e4724be2a60ddca29070b2bce05aba (
plain) (
blame)
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
|
[user]
name = Egor Tensin
email = Egor.Tensin@gmail.com
[core]
# Don't touch line endings (I hate the fact that this is an option).
# My go-to approach now is to store everything w/ LF line endings in
# index (using '* text=auto' in root .gitattributes), and checkout with
# specific line endings as required (using additional records in
# .gitattributes, like '*.sh text eol=lf', '*.bat text eol=crlf',
# etc.).
autocrlf = false
[push]
# If no refspec is given, push to the branch with the same name.
default = current
# Git submodules suck, but they suck less if you read
# https://medium.com/@porteneuve/mastering-git-submodules-34c65e940407.
# Show submodule changes in a more verbose way.
[diff]
submodule = log
wsErrorHighlight = all
[status]
submoduleSummary = true
[alias]
# Pull and sync submodules.
pulll = !git pull && git submodule sync --recursive && git submodule update --init --recursive
# Automatically remove obsolete things/publish new things.
[fetch]
# Prune old branches:
prune = true
# Prune old tags (since Git 2.17.0):
pruneTags = true
[push]
# Push new tags:
followTags = true
[log]
# Follow renames:
follow = true
[merge]
# Show the common ancestor when resolving a conflict:
conflictStyle = diff3
[mergetool]
# I don't even know why those are necessary, since we can abort and
# retry merges.
keepBackup = false
[pull]
# Don't create a merge commit when pulling, fast-forward only.
ff = only
[alias]
clean-all = clean -fdx
clean-ignored = clean -fdX
clean-unknown = clean -fd
l = log --oneline
# This is awesome: http://stackoverflow.com/a/1838938/514684
ll = log --graph --full-history --all --pretty=format:"%h%x09%d%x20%s"
lll = log --graph --full-history --all --color --pretty=tformat:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s%x20%x1b[33m(%an)%x1b[0m"
# I think this is only usable on Cygwin, given all the file permission
# madness there:
xx = update-index --add --chmod=+x
hide = update-index --skip-worktree
unhide = update-index --no-skip-worktree
hidden = !git ls-files -v | grep --basic-regexp \"^\\([[:lower:]]\\|S\\)\"
# Squash the staging area with the latest commit.
# Pass "-a" to skip using `git add`.
fixup = !GIT_EDITOR=true git commit --amend
# Life is too short.
s = status
co = checkout
[filter "lfs"]
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
clean = git-lfs clean -- %f
required = true
[include]
# Include a file with computer-specific settings (like a different
# [user] section under a specific directory, etc.).
path = ~/.gitconfig_local
|