The git configuration file contains a number of variables that affect
the git command's behavior. The `.git/config` file in each repository
-is used to store the information for that repository, and
-`$HOME/.gitconfig` is used to store per user information as
+is used to store the configuration for that repository, and
+`$HOME/.gitconfig` is used to store a per-user configuration as
fallback values for the `.git/config` file. The file `/etc/gitconfig`
-can be used to store system-wide defaults.
+can be used to store a system-wide default configuration.
The configuration variables are used by both the git plumbing
and the porcelains. The variables are divided into sections, wherein
index comparison to the filesystem data in parallel, allowing
overlapping IO's.
+core.createObject::
+ You can set this to 'link', in which case a hardlink followed by
+ a delete of the source are used to make sure that object creation
+ will not overwrite existing objects.
++
+On some file system/operating system combinations, this is unreliable.
+Set this config setting to 'rename' there; However, This will remove the
+check that makes sure that existing object files will not get overwritten.
+
alias.*::
Command aliases for the linkgit:git[1] command wrapper - e.g.
after defining "alias.last = cat-file commit HEAD", the invocation
it will be treated as a shell command. For example, defining
"alias.new = !gitk --all --not ORIG_HEAD", the invocation
"git new" is equivalent to running the shell command
-"gitk --all --not ORIG_HEAD".
+"gitk --all --not ORIG_HEAD". Note that shell commands will be
+executed from the top-level directory of a repository, which may
+not necessarily be the current directory.
apply.whitespace::
Tells 'git-apply' how to handle whitespaces, in the same way