]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - gitconfig.in
gitconfig: clarify diff commands
[config/dotfiles.git] / gitconfig.in
index a6b1633ea00084c79422e257c569d32b9d14a837..846f013e56a8832e3e7d2d787c0ddf5850f4faa6 100644 (file)
@@ -1,6 +1,6 @@
 # Global Git configuration file.
 
-# Copyright (C) 2011-2015  Simon Ruderich
+# Copyright (C) 2011-2017  Simon Ruderich
 #
 # This file is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
        cad = commit --verbose --amend --date=
        d   = diff
        dw  = diff --color-words
+       ds  = diff --stat
        dc  = diff --cached
        dcw = diff --cached --color-words
-       ds  = diff --stat
+       dcs = diff --cached --stat
        g   = grep
+       gi  = grep --ignore-case
        s   = status
        l   = log
        ls  = log --stat
        a   = add
        ap  = add --patch
        au  = add --update
+       rs  = reset
+       rsh = reset --hard
+       rsp = reset --patch
+       rv  = revert
+       cl  = clean -ndx
+       clf = clean -fdx
        ## Branches.
        co  = checkout
        b   = branch -a -v
+       br  = branch
        m   = merge
        mo  = merge origin/master
+       re  = rebase
+       rei = rebase --interactive
+       rec = rebase --continue
+       cp  = cherry-pick
+       ## Submodules.
+       sm  = submodule
        ## Remote.
        f   = fetch
        t   = tag
        # Diff algorithm to use.
        algorithm = histogram
 
+       # Replace "a/" and "b/" prefix in diffs with characters describing the
+       # context (e.g. "i/"ndex and "w/"ork tree).
+       mnemonicprefix = true
+
        # Change the definition of a word as used by diff --color-words to be
        # shorter (not only spaces) and thus simplify the generated diffs.
        # Words ([a-zA-Z0-9_]+) are matched, or a single non-word character
 
 # Allow diffing of some binary files.
 #
-# "sh -c '..' -" is used when the programs require additional arguments. The
-# last "-" is argv[0] which is passed to sh, the real arguments are passed
-# after "-" by git.
+# "sh -c '..' ARGV0" is used when the programs require additional arguments
+# which are passed after ARGV0 by git.
 [diff "gzip"]
        textconv = gzip -d -c
 [diff "pdf"]
-       textconv = sh -c 'exec pdftotext "$@" -' -
+       textconv = sh -c 'exec pdftotext "$@" -' ARGV0
 [diff "sqlite"]
-       textconv = sh -c 'exec sqlite3 "$@" .dump' -
+       textconv = sh -c 'exec sqlite3 "$@" .dump' ARGV0
 
 [log]
        # Display branches/tag names in log (same as log's --decorate option).
        decorate = short
+       # If a single file is given to `git log`, automatically use --follow.
+       follow = yes
 
 [merge]
        tool = vimdiff
 
 [push]
        # When running git push without a refspec push only the current
-       # branch, see man page git-config(1) for details.
+       # branch, see man page git-config(1) for details. Default since Git
+       # 2.0.
        default = simple
 
 [format]
 [transfer]
        # Automatically fsck objects when receiving them (respected by git
        # receive-pack and git fetch (>= 1.7.8, for fetch)).
-       fsckobjects = yes
+       fsckObjects = yes
+
+
+# NON-GIT SETTINGS
+
+[annex]
+       # My SSH config already uses ControlMaster where appropriate.
+       sshcaching = false
 
 # vim: ft=gitconfig