mcabreradev
10/9/2014 - 7:47 PM

gitconfig

gitconfig

# core {{{
[core]
    editor = /usr/bin/vim
    excludesfile = /home/migue/.gitignore_global
    pager=less -x4

#}}}

# user {{{
[user]
    name = Migue
    email = miguel4ngel@gmail.com

#}}}

# color {{{
[color]
    ui = true
    branch = auto
    diff = auto
    status = auto

[color "branch"]
    current = red reverse
    local = blue
    remote = green

[color "diff"]
    meta = yellow
    frag = magenta
    old = red bold
    new = green
    plain = white

[color "status"]
    added = green
    changed = yellow
    untracked = cyan

# }}}

# push/pull/diff/options {{{
[push]
    default = upstream
[pull]
    default = current
[diff]
  memonicprefix = true
[branch]
  autosetuprebase = always
[apply]
  whitespace = nowarn

#}}}

# difftools {{{
[difftool "sourcetree"]
  cmd = opendiff \"$LOCAL\" \"$REMOTE\"
  path =
[mergetool "sourcetree"]
  cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
  trustExitCode = true
[merge]
  tool = meld
[pack]
  threads = 0
# }}}

# alias {{{
[alias]
    st = status -s

    cl = clone

    ci = commit
    cm = commit -m
    cma = commit -a -m
    ca = commit --amend
    amend = commit --amend
    caa = commit -a --amend -C HEAD
    filelog = log -u
    fl = log -u
	
    # PULL and PUSH
    down = pull --rebase
    up = push origin master	

    ai = add --interactive

    co = checkout
    br = branch
    #"!git branch -ra | grep -v done"
    bra = branch -ra
    #list commands
    le = log --oneline --decorate
    ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
    ls1 = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate
    lds = log --pretty=format:"%C(yellow)%h\\ %C(green)%ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=short --graph
    ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=relative
    lc  = "!f() { git ll "$1"^.."$1"; }; f"
    lnc = log --pretty=format:"%h\\ %s\\ [%cn]"
    #list all aliases
    la = "!git config -l | grep alias | cut -c 7-"
    diff = diff --word-diff
    d = diff --word-diff
    dc = diff --cached
    #list modified files in last commit
    dl = "!git ll -1"
    #diff last commit
    dlc = diff --cached HEAD^
    dr  = "!f() { git diff -w "$1"^.."$1"; }; f"
    diffr  = "!f() { git diff "$1"^.."$1"; }; f"
    branch = branch -ra

    #reset commands
    r = reset
    r1 = reset HEAD^
    r2 = reset HEAD^^
    rh = reset --hard
    rh1 = reset HEAD^ --hard
    rh2 = reset HEAD^^ --hard

    #git svn
    svnr = svn rebase
    svnd = svn dcommit
    svnl = svn log --oneline --show-commit

    #stash
    sl = stash list
    sa = stash apply
    ss = stash save

    cp = cherry-pick
    grep = grep -Ii
    gr = grep -Ii
    #grep from root folder
    gra = "!f() { A=$(pwd) && TOPLEVEL=$(git rev-parse --show-toplevel) && cd $TOPLEVEL && git grep --full-name -In $1 | xargs -I{} echo $TOPLEVEL/{} && cd $A; }; f"

    #grep on filename
    f = "!git ls-files | grep -i"

    #rename branch tree to done-
    done = "!f() { git branch | grep "$1" | cut -c 3- | grep -v done | xargs -I{} git branch -m {} done-{}; }; f"

    #assume aliases
    assume = update-index --assume-unchanged
    unassume = update-index --no-assume-unchanged
    #show assumed files
    assumed = "!git ls-files -v | grep ^h | cut -c 3-"
    #unassume all the assumed files
    unassumeall = "!git assumed | xargs git update-index --no-assume-unchanged"
    assumeall = "!git st -s | awk {'print $2'} | xargs git assume"

    lasttag = describe --tags --abbrev=0
    lt = describe --tags --abbrev=0

    #merges
    ours = "!f() { git co --ours $@ && git add $@; }; f"
    theirs = "!f() { git co --theirs $@ && git add $@; }; f"

    #list remotes
    rem="!git config -l | grep remote.*url | tail -n +2"

    #apply patch from other local repo
    lap = "!f() { git --git-dir=$1 format-patch -k -1 --stdout $2 | git am -3 -k; }; f"

    #subtree add
    sba = "!f() { git subtree add --prefix $2 $1 master --squash; }; f"
    # initial empty commit
    empty = "!git commit -am\"[empty] Initial commit\" --allow-empty"

    #add bitbucket remote
    ra = "!f() { git remote add $1 https://bitbucket.org/$2.git; }; f"
# }}}

[rerere]
  enabled = true
[rebase]
  autosquash = true