Home Explore Blog CI



git

8th chunk of `Documentation/config/core.adoc`
c881fb4ed579a4a08e2a4dcd5c68ecb3e7aa69c4b1eab3cc0000000100000fab
 other text files delta
compressed, but not larger binary media files.
+
Storing large files without delta compression avoids excessive memory
usage, at the slight expense of increased disk usage.
+
* Will be treated as if they were labeled "binary" (see
  linkgit:gitattributes[5]). e.g. linkgit:git-log[1] and
  linkgit:git-diff[1] will not compute diffs for files above this limit.
+
* Will generally be streamed when written, which avoids excessive
memory usage, at the cost of some fixed overhead. Commands that make
use of this include linkgit:git-archive[1],
linkgit:git-fast-import[1], linkgit:git-index-pack[1],
linkgit:git-unpack-objects[1] and linkgit:git-fsck[1].

core.excludesFile::
	Specifies the pathname to the file that contains patterns to
	describe paths that are not meant to be tracked, in addition
	to `.gitignore` (per-directory) and `.git/info/exclude`.
	Defaults to `$XDG_CONFIG_HOME/git/ignore`.
	If `$XDG_CONFIG_HOME` is either not set or empty, `$HOME/.config/git/ignore`
	is used instead. See linkgit:gitignore[5].

core.askPass::
	Some commands (e.g. svn and http interfaces) that interactively
	ask for a password can be told to use an external program given
	via the value of this variable. Can be overridden by the `GIT_ASKPASS`
	environment variable. If not set, fall back to the value of the
	`SSH_ASKPASS` environment variable or, failing that, a simple password
	prompt. The external program shall be given a suitable prompt as
	command-line argument and write the password on its STDOUT.

core.attributesFile::
	In addition to `.gitattributes` (per-directory) and
	`.git/info/attributes`, Git looks into this file for attributes
	(see linkgit:gitattributes[5]). Path expansions are made the same
	way as for `core.excludesFile`. Its default value is
	`$XDG_CONFIG_HOME/git/attributes`. If `$XDG_CONFIG_HOME` is either not
	set or empty, `$HOME/.config/git/attributes` is used instead.

core.hooksPath::
	By default Git will look for your hooks in the
	`$GIT_DIR/hooks` directory. Set this to different path,
	e.g. `/etc/git/hooks`, and Git will try to find your hooks in
	that directory, e.g. `/etc/git/hooks/pre-receive` instead of
	in `$GIT_DIR/hooks/pre-receive`.
+
The path can be either absolute or relative. A relative path is
taken as relative to the directory where the hooks are run (see
the "DESCRIPTION" section of linkgit:githooks[5]).
+
This configuration variable is useful in cases where you'd like to
centrally configure your Git hooks instead of configuring them on a
per-repository basis, or as a more flexible and centralized
alternative to having an `init.templateDir` where you've changed
default hooks.
+
You can also disable all hooks entirely by setting `core.hooksPath`
to `/dev/null`. This is usually only advisable for expert users and
on a per-command basis using configuration parameters of the form
`git -c core.hooksPath=/dev/null ...`.

core.editor::
	Commands such as `commit` and `tag` that let you edit
	messages by launching an editor use the value of this
	variable when it is set, and the environment variable
	`GIT_EDITOR` is not set.  See linkgit:git-var[1].

core.commentChar::
core.commentString::
	Commands such as `commit` and `tag` that let you edit
	messages consider a line that begins with this character
	commented, and removes them after the editor returns
	(default '#').
+
If set to "auto", `git-commit` would select a character that is not
the beginning character of any line in existing commit messages.
+
Note that these two variables are aliases of each other, and in modern
versions of Git you are free to use a string (e.g., `//` or `⁑⁕⁑`) with
`commentChar`. Versions of Git prior to v2.45.0 will ignore
`commentString` but will reject a value of `commentChar` that consists
of more than a single ASCII byte. If you plan to use your config with
older and newer versions of Git, you may want to specify both:
+
    [core]
    # single character for older versions
    commentChar = "#"
    # string for newer

Title: Git Core Configuration Variables for File Handling and Behavior
Summary
This section describes various Git core configuration variables related to file handling, behavior, and interaction, including settings for excluding files, asking for passwords, attributes, hook paths, editors, and comment characters, which can be used to customize and optimize Git's behavior for different use cases and workflows.