Skip to content

Instantly share code, notes, and snippets.

@netravnen
Last active August 17, 2019 01:54
Show Gist options
  • Save netravnen/b94410ca11def19b5461108b1d198d3d to your computer and use it in GitHub Desktop.
Save netravnen/b94410ca11def19b5461108b1d198d3d to your computer and use it in GitHub Desktop.
My global gitconfig
[user]
# Insert ID for GPG key being used for signing git commits
#signingkey = <GPG_KEY_ID>
useConfigOnly = true
# Name to use for commits
#name = FULLNAME
# E-mail to use for commits
#email = [email protected]
[credential]
# If using https: on linux. Enable credential.helper to store logins.
#helper = store
# If using https: on Windows Enable credential.helper to store logins.
#helper = manager
[commit]
# Set to true if commits should be gpg signed by default
gpgsign = false
[format]
commitMessageColumns = 72
# Adds `Signed-off-by` to end of commit messages. If set to true
# adds line by default. Can also be added on case-by-case with
# `-s/--signoff` switch when running `git commit`.
signoff = false
[gpg]
# Windows specific config - Uncomment to use.
#program = C:\\Program Files (x86)\\GnuPG\\bin\\gpg.exe
# Linux/BSD specific config - Uncomment to use.
#program = /usr/bin/gpg
[core]
quotepath = false
excludesfile = ~/.gitignore_global
autocrlf = input
# Change to fx. vim or something else for default editor when writing commit messages.
editor = nano
#editor = vim
# If you prefer using Notepad++ on Windows, uncomment this and comment out editor above.
#editor = 'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin
whitespace = fix,-indent-with-non-tab,trailing-space,cr-at-eol
safecrlf = false
[web]
browser = googlechrome
[pack]
# Avoid large memory utilization on shared servers / shell accounts
windowMemory = 25m
packSizeLimit = 25m
threads = 1
deltaCacheSize = 25m
[filter "lfs"]
required = true
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
[filter "media"]
clean = git-media-clean %f
smudge = git-media-smudge %f
[log]
mailmap = true
[mailmap]
file = ~/.mailmap
[push]
default = matching
[pull]
rebase = true
[rebase]
autoStash = true
[merge]
log = true
ff = false
renormalize = true
verbosity = 4
tool = winmerge
[mergetool]
keepBackup = false
prompt = false
[url "https://bitbucket.org/"]
insteadOf = bb:
[url "https://github.com/"]
insteadOf = gh:
[url "https://gist.github.com/"]
insteadOf = gist:
[url "https://gitlab.com/"]
insteadOf = gl:
[url "[email protected]:"]
insteadOf = dn42:
[url "https://git.data.coop/"]
insteadOf = coop:
[color]
ui = auto
[color "branch"]
current = yellow bold
local = green bold
remote = cyan bold
[color "diff"]
meta = yellow bold
frag = magenta bold
old = red bold
new = green bold
whitespace = red reverse
[color "status"]
added = green bold
changed = yellow bold
untracked = red bold
[gitflow "prefix"]
feature = feature/
release = release/
hotfix = hotfix/
support = support/
versiontag = v
[remote "upstream"]
# Ensures we do not try to push to remotes named upsteam.
pushurl = nothing
[alias]
a = add --all
ai = add -i
#############
ap = apply
as = apply --stat
ac = apply --check
#############
ama = am --abort
amr = am --resolved
ams = am --skip
#############
b = branch
ba = branch -a
bd = branch -d
bo = "!f() { git branch $1 && git checkout $1; }; f"
br = branch -r
#############
c = commit
ca = commit --all
cm = commit -m
cem = commit --allow-empty -m
cam = commit -am
cd = commit --amend
cad = commit --all --amend
ced = commit --allow-empty --amend
#############
d = diff
dc = diff --cached
dl = difftool
dlc = difftool --cached
dk = diff --check
dp = diff --patience
dck = diff --cached --check
#############
f = fetch
fo = fetch origin
fu = fetch upstream
#############
fp = format-patch
#############
fk = fsck
#############
g = grep -p
#############
l = log --oneline
lg = log --oneline --graph --decorate
lsg = log --show-signature -3
#############
ls = ls-files
lsf = "!git ls-files | grep -i"
#############
m = merge
ma = merge --abort
mc = merge --continue
ms = merge --skip
merge-to = "!f() { git checkout $1 && git merge $2 && git checkout -; }; f"
#############
o = checkout
ob = checkout -b
#############
pr = prune --verbose
#############
ps = push
psf = push -f
psu = push -u
pso = push origin
psao = push --all origin
psfo = push -f origin
psuo = push -u origin
psom = push origin master
psfom = push -f origin master
psuom = push -u origin master
#############
pl = pull
plu = pull -u
plo = pull origin
plp = pull upstream
plom = pull origin master
plpm = pull upstream master
#############
pb = pull --rebase
pbo = pull --rebase origin
pbp = pull --rebase upstream
pbom = pull --rebase origin master
pbpm = pull --rebase upstream master
#############
rb = rebase
rba = rebase --abort
rbc = rebase --continue
rbi = rebase --interactive
rbs = rebase --skip
#############
re = reset
rh = reset HEAD
reh = reset --hard
rem = reset --mixed
res = reset --soft
rehh = reset --hard HEAD
remh = reset --mixed HEAD
resh = reset --soft HEAD
#############
r = remote
ra = remote add
rr = remote rm
rv = remote --verbose
rm = remote rename
rp = remote prune
rs = remote show
rao = remote add origin
rau = remote add upstream
rso = remote show origin
rsu = remote show upstream
rpo = remote prune origin
rpu = remote prune upstream
#############
s = status
sb = status --signoff -b
#############
sa = stash apply
sc = stash clear
sd = stash drop
sl = stash list
sp = stash pop
ss = stash save
sw = stash show
#############
w = show
wp = show --patch
wr = show --patch --no-color
#############
svnr = svn rebase
svnd = svn dcommit
svnl = svn log --oneline --show-commit
#############
assume = update-index --assume-unchanged --verbose
unassume = update-index --no-assume-unchanged --verbose
assumed = "!git ls-files -v | grep ^h | cut -c 3-"
unassumeall = !git assumed | xargs git update-index --no-assume-unchanged
assumeall = "!git st -s | awk {'print $2'} | xargs git assume"
replace = update-index --verbose --replace
#############
ours = "!f() { git checkout --ours $@ && git add $@; }; f"
theirs = "!f() { git checkout --theirs $@ && git add $@; }; f"
#############
whois = "!sh -c 'git log --include -1 --pretty=\"format:%an <%ae>\n\" --author=\"$1\"' -"
whatis = show -s --pretty='tformat:%h (%s, %ad)' --date=short
#############
barebranch = !sh -c 'git symbolic-ref HEAD refs/heads/$1 && git rm --cached -r . && git clean -xfd' -
flat = clone --depth 1
subpull = !git submodule foreach git pull --tags origin master
subrepo = !sh -c 'filter-branch --prune-empty --subdirectory-filter $1 master' -
human = name-rev --name-only --refs=refs/heads/*
serve = !git daemon --reuseaddr --verbose --base-path=. --export-all ./.git
# Start a new Git repository with an empty 1st commit
start = !git init && git commit --allow-empty -m \"Initial commit\"
snapshot = !git stash save "snapshot: $(date)" && git stash apply "stash@{0}"
# Use to sign an existing git commit. Use: git resign <COMMIT_ID>
resign = "!re() { git rebase --exec 'git commit --amend --no-edit --no-verify --gpg-sign --signoff' -i $1; }; re"
# Ignore thumbnails created by windows
Thumbs.db
desktop.ini
# Ignore files build by Visual Studio
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
*.dll
*.lib
*.sbr
# Ignore JetBrain programs working dir
.idea/
# Avoid temp files - Linux/BSD style
*~
.*.swp
# Ignore constant irritating macOS file
.DS_Store

gitconfig

Default gitconfig setup

This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <http://unlicense.org/>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment