Source

dotfiles / gitconfig

[user]
    name = Steve Losh
    email = steve@stevelosh.com

[core]
    pager = cat
    editor = vim
    excludesfile = /Users/sjl/.gitignore

[alias]
    tags = tag -l
    branches = branch -a
    remotes = remote -v

    make-the-fucking-branch-point-at-the-fucking-commit = "!sh -c 'git checkout $1 && git reset --hard $2' -"
    root = rev-parse --show-toplevel

    graft = cherry-pick -x

    l   = log -18 --color=always --all --topo-order --pretty='format:%Cgreen%h%Creset %s%Cred%d%Creset %C(black bold)(by %an)%Creset'
    ll  = log     --color=always --all --topo-order --pretty='format:%Cgreen%h%Creset %s%Cred%d%Creset %C(black bold)(by %an)%Creset'
    gl  = log -12 --color=always --all --graph --topo-order --pretty='format:%Cgreen%h%Creset %s %C(black bold)(by %an)%Creset%C(yellow bold)%d%Creset%n'
    gll = log     --color=always --all --graph --topo-order --pretty='format:%Cgreen%h%Creset %s %C(black bold)(%cr by %an)%Creset%C(yellow bold)%d%Creset%n'

    pull = pull --ff-only
    up = merge --ff-only

    join = merge --no-ff

    discard-merge = reset --hard HEAD

    ack = log --color=always --all --topo-order --pretty='format:%Cgreen%h%Creset %s%Cred%d%Creset %C(black bold)(by %an)%Creset' --full-history -S 

    ci = commit
    cm = commit -m

    d = !git diff | vim -R -
    di = !git diff --cached | vim -R -

    co = checkout
    id = rev-parse

    stat = status
    st = status

    unstage = reset HEAD
    uns = reset HEAD

    delete-local-branch = branch -D
    delete-remote-branch = push origin --delete
    delete-local-reference-to-remote-branch = branch -rd
    delete-branch = "!sh -c 'git delete-local-branch $1; git delete-local-reference-to-remote-branch origin/$1; git delete-local-reference-to-remote-branch upstream/$1' -"

    currentbranch = rev-parse --abbrev-ref HEAD

    fo = fetch origin
    fu = fetch upstream

    po = push origin
    ; lo = pull origin

    mo = !git merge --no-ff origin/`git currentbranch`
    mu = !git merge --no-ff upstream/`git currentbranch`

    uo = !git merge --ff-only origin/`git currentbranch`
    uu = !git merge --ff-only upstream/`git currentbranch`

    addremove = !git add . && git add -u
    addrem = !git addremove

    ksdiff = difftool -y -t Kaleidoscope
    ksshow = "!sh -c 'git ksdiff $1^..$1;' -"

    sl = "!sh -c 'git show --color=always $1 | less -R' -"

    find-merge = "!sh -c 'git log $1..master --merges -n1' -"

    fuck-up-history-from = pull --rebase

[push]
    default = current

[color]
    branch = auto
    diff = auto
    interactive = auto
    status = auto

[difftool "Kaleidoscope"]
    cmd = ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\"

[difftool]
    prompt = false

[diff]
    tool = Kaleidoscope

[merge]
    tool = splice

[mergetool "splice"]
    cmd = "vim -f $BASE $LOCAL $REMOTE $MERGED -c 'SpliceInit'"
    trustExitCode = true

[mergetool "Kaleidoscope"]
    cmd = ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot

[web]
    browser = open

[include]
    path = ~/.gitconfig_local
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.