/home/XXX/.gitconfig
[user]
name = nameemail = email@emindsoft.com.cn
[color]
# ui = true is a superset of all the more specific color options
# as documented at http://book.git-scm.com/5_customizing_git.html
# When set to always, always use colors in all git commands which are capable of colored output.
# When false, never. When set to true or auto, use colors only when the output is to the terminal.
# When more specific variables of color.* are set, they always take precedence over this setting.
# Defaults to false.
ui = auto
# diff = auto
# status = auto
# branch = auto
[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
[gui]
fontdiff = -family Monaco -size 10 -weight normal -slant roman -underline 0 -overstrike 0
[core]
quotepath = false
autocrlf = input
safecrlf = warn
editor=vim
[alias]
br = branch -a
ci = commit
s = status -s -u
cl = log --stat -C -2
c = commit
co = checkout
d = diff --color-words
dh = diff HEAD
dc = diff --staged
dw = diff --word-diff
dcw = diff --color-words
dm = !git diff | mate
dv = !git diff | vim
who = shortlog -s --
ph = push
pl = pull
lp = log -p
lod = log --oneline --decorate
lg = log --graph
lpo = log --pretty=oneline --abbrev-commit --graph --decorate --all
l1 = log --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
l2 = log --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
spull = !git-svn fetch && git-svn rebase
spush = !git-svn dcommit
sync = !git pull && git push
es = !git pull --rebase && git push
lf = log --pretty=fuller
ignorechanges = update-index --assume-unchanged
noticechanges = update-index --no-assume-unchanged
gc-ap = gc --aggressive --prune
listconf = config --global --list
cam = commit -a -m
lsm = log -M --stat
hse = log --stat -5
diffall = diff HEAD
logr = log -M
logr2 = log --stat -M -2
logit = log --stat -M
scrub = !git reset --hard && git clean -fd
pub = !git pub checkout master && git pull && git checkout dev && git rebase master && git checkout master && git merge dev && git wtf
cs = status
rv = remote -v
lwr = log --stat -C
pur = pull --rebase
whatis = show -s --pretty='tformat:%h (%s, %ad)' --date=short
orphank = !gitk --all `git reflog | cut -c1-7`&
orphanl = !git --pretty=oneline --abbrev-commit --graph --decorate `git reflog | cut -c1-7`
k = !exec gitk --all&
testecho1 = !sh -c 'echo with slash: zero=$0 one=$1 two=$2' -
# te1 RESULT: with slash: zero=- one=A two=B
testecho2 = !sh -c 'echo without slash: zero=$0 one=$1 two=$2'
# te2 RESULT: without slash: zero=A one=B two=C
st = status
l = log --stat -C
ll = log --stat -C -3
servehere = daemon --verbose --informative-errors --reuseaddr --export-all --base-path=. --enable=receive-pack
servedotgits = !git daemon --verbose --reuseaddr --base-path=. --export-all ./.git
purgeme = !git clean -fd && git reset --hard
prunenow = gc --prune=now
ri = rebase --interactive --autosquash
lol = log --pretty=oneline --abbrev-commit
blg = log --graph --decorate --all --abbrev-commit --pretty=oneline
slog = log --graph --simplify-by-decoration --all --abbrev-commit --pretty=oneline
lgso = log --graph --date=short --pretty=format:'%C(yellow)%h%Creset %cn%x09%cd %s%C(green bold)%d'
ro = !git fetch origin && git reset --hard origin/master
shorten = "!sh -c 'curl -i http://git.io -F url=$1' -"
pushnotes = !sh -c 'git push $1 refs/notes/*' -
fetchnotes = !sh -c 'git fetch $1 refs/notes/*:refs/notes/*' -
showignored = clean -ndX
showignored2 = ls-files --others --ignored --exclude-standard
showuntracked = ls-files --others --exclude-standard
rmmissing = !git rm $(git ls-files --deleted)
mergekeepoursonly = merge -s ours
redocommit = reset --soft HEAD^
listunstaged = diff --name-status
liststaged = diff --name-status --staged
listhistory = log --name-status
logn = log --oneline --name-only
busypeople = shortlog -6
busythisweek = shortlog --since=one.week.ago
configpushtracking = config push.default tracking
configpushnothing = config push.default nothing
configpushtracking = config push.default matching
configpushcurrent = config push.default current
sizes = "!for eachthing in `git rev-list HEAD --all`; do echo `git cat-file -s $eachthing` $eachthing ; done"
emptytree = hash-object -t tree /dev/null
diffemptytreehash = diff -p 4b825dc642cb6eb9a060e54bf8d69288fbee4904
listfetchedcommits = log ORIG_HEAD.. --stat --no-merges
llog = log --date=local
diffnamestatus = diff --name-status
diffstat=diff --stat
whatsjusthappened = !sh -c 'git log $1@{1}..$1@{0} "$@"'
editconflicted = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; $EDITOR `f`"
addconflicted = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; git add `f`"
# Other alias ideas that don't quite work yet
#testnewrepodoesntwork1 = !echo git init $1 && echo cd $1
#testnewrepodoesntwork2 = !sh -c 'git init $1; echo hi' -
#testnewrepodoesntwork3 = "!f() { git init $1}; f"
nr = "!sh -c 'git init $0'"
echoparam1 = "!sh -c 'echo $0'"
#testshfunction = "!function gitme() { git init $1; cd $1; }; gitme"
fixup = "!sh -c 'git commit -m \"fixup! $(git log -1 --format='\\''%s'\\'' $@)\"' -"
squash = "!sh -c 'git commit -m \"squash! $(git log -1 --format='\\''%s'\\'' $@)\"' -"
ccfq = "!sh -c 'git add $1 && git commit -m\"Placeholder\"' -"
bbnl = log --graph --abbrev-commit --decorate --all --pretty=oneline
bbnclean = clean -ndX
[apply]
whitespace = nowarn
[rerere]
enabled = 1
[diff]
tool = araxis
[difftool]
prompt = false
#[difftool "myaraxis"]
# cmd = araxisgitdiff ONE $LOCAL THREE FOUR $REMOTE
[merge]
tool = araxis
[mergetool]
prompt = false
keepBackup = false
#[mergetool "myaraxis"]
# cmd = araxisgitmerge $PWD/$REMOTE $PWD/$BASE $PWD/$LOCAL $PWD/$MERGED
[branch]
# Automatically set up pull to be --rebase
# autosetuprebase = always
[github]
# https://github.com/blog/180-local-github-config
user = sunzhigang
token = yourgithubtoken
[url "git://github.com/"]
insteadOf = "ghg://"
pushInsteadOf = "ghg://"
# Example: git clone ghg://ntschutta/emacs
[url "git://github.com/matthewmccullough/"]
insteadOf = "ghgm://"
pushInsteadOf = "ghgm://"
# Example: git clone ghgm://hellogitworld
[url "git@github.com:"]
insteadOf = "ghs://"
pushInsteadOf = "ghs://"
[url "git@github.com:matthewmccullough/"]
insteadOf = "ghsm://"
pushInsteadOf = "ghsm://"
[url "https://github.com/"]
insteadOf = "ghh://"
pushInsteadOf = "ghh://"
[url "https://github.com/matthewmccullough/"]
insteadOf = "ghhm://"
pushInsteadOf = "ghhm://"
[push]
default = simple