Home Explore Blog CI



git

1st chunk of `Documentation/config/core.adoc`
9f2496d46bcb103907046a9f434a4b3432808178adf133810000000100000fa3
core.fileMode::
	Tells Git if the executable bit of files in the working tree
	is to be honored.
+
Some filesystems lose the executable bit when a file that is
marked as executable is checked out, or checks out a
non-executable file with executable bit on.
linkgit:git-clone[1] or linkgit:git-init[1] probe the filesystem
to see if it handles the executable bit correctly
and this variable is automatically set as necessary.
+
A repository, however, may be on a filesystem that handles
the filemode correctly, and this variable is set to 'true'
when created, but later may be made accessible from another
environment that loses the filemode (e.g. exporting ext4 via
CIFS mount, visiting a Cygwin created repository with
Git for Windows or Eclipse).
In such a case it may be necessary to set this variable to 'false'.
See linkgit:git-update-index[1].
+
The default is true (when core.filemode is not specified in the config file).

core.hideDotFiles::
	(Windows-only) If true, mark newly-created directories and files whose
	name starts with a dot as hidden.  If 'dotGitOnly', only the `.git/`
	directory is hidden, but no other files starting with a dot.  The
	default mode is 'dotGitOnly'.

core.ignoreCase::
	Internal variable which enables various workarounds to enable
	Git to work better on filesystems that are not case sensitive,
	like APFS, HFS+, FAT, NTFS, etc. For example, if a directory listing
	finds "makefile" when Git expects "Makefile", Git will assume
	it is really the same file, and continue to remember it as
	"Makefile".
+
The default is false, except linkgit:git-clone[1] or linkgit:git-init[1]
will probe and set core.ignoreCase true if appropriate when the repository
is created.
+
Git relies on the proper configuration of this variable for your operating
and file system. Modifying this value may result in unexpected behavior.

core.precomposeUnicode::
	This option is only used by Mac OS implementation of Git.
	When core.precomposeUnicode=true, Git reverts the unicode decomposition
	of filenames done by Mac OS. This is useful when sharing a repository
	between Mac OS and Linux or Windows.
	(Git for Windows 1.7.10 or higher is needed, or Git under cygwin 1.7).
	When false, file names are handled fully transparent by Git,
	which is backward compatible with older versions of Git.

core.protectHFS::
	If set to true, do not allow checkout of paths that would
	be considered equivalent to `.git` on an HFS+ filesystem.
	Defaults to `true` on Mac OS, and `false` elsewhere.

core.protectNTFS::
	If set to true, do not allow checkout of paths that would
	cause problems with the NTFS filesystem, e.g. conflict with
	8.3 "short" names.
	Defaults to `true` on Windows, and `false` elsewhere.

core.fsmonitor::
	If set to true, enable the built-in file system monitor
	daemon for this working directory (linkgit:git-fsmonitor{litdd}daemon[1]).
+
Like hook-based file system monitors, the built-in file system monitor
can speed up Git commands that need to refresh the Git index
(e.g. `git status`) in a working directory with many files.  The
built-in monitor eliminates the need to install and maintain an
external third-party tool.
+
The built-in file system monitor is currently available only on a
limited set of supported platforms.  Currently, this includes Windows
and MacOS.
+
	Otherwise, this variable contains the pathname of the "fsmonitor"
	hook command.
+
This hook command is used to identify all files that may have changed
since the requested date/time. This information is used to speed up
git by avoiding unnecessary scanning of files that have not changed.
+
See the "fsmonitor-watchman" section of linkgit:githooks[5].
+
Note that if you concurrently use multiple versions of Git, such
as one version on the command line and another version in an IDE
tool, that the definition of `core.fsmonitor` was extended to
allow boolean values in addition to hook pathnames.  Git versions
2.35.1 and prior will not understand the boolean values and will
consider the

Title: Git Core Configuration Variables
Summary
This section describes various Git core configuration variables, including file mode, hidden dot files, case insensitivity, Unicode handling, and file system monitoring, which can be used to customize Git's behavior on different operating systems and file systems.