Skip to content

Instantly share code, notes, and snippets.

@YenForYang
Last active November 15, 2020 23:50
Show Gist options
  • Save YenForYang/bb8c6d56e76960a4805afc3a155f8fb7 to your computer and use it in GitHub Desktop.
Save YenForYang/bb8c6d56e76960a4805afc3a155f8fb7 to your computer and use it in GitHub Desktop.
gitconfig
[README]
# html=
# A html file (HTML fragment) which is included on the gitweb project
# "summary" page inside `<div>` block element. You can use it for longer
# description of a project, to provide links (for example to project's
# homepage), etc. This is recognized only if XSS prevention is off
# (`$prevent_xss` is false, see linkgit:gitweb.conf[5]); a way to include
# a README safely when XSS prevention is on may be worked out in the
# future.
[add]
# ignoreErrors=
# Tells 'git add' to continue adding files when some files can't be
# added due to indexing errors. Equivalent to the `--ignore-errors`
# option of linkgit:git-add[1]. `add.ignore-errors` is deprecated,
# as it does not follow the usual naming convention for configuration
# variables.
[add "interactive"]
# useBuiltin=
# [EXPERIMENTAL] Set to `true` to use the experimental built-in
# implementation of the interactive version of linkgit:git-add[1]
# instead of the Perl script version. Is `false` by default.
[advice]
# *=
# These variables control various optional help messages designed to
# aid new users. All 'advice.*' variables default to 'true', & you
# can tell Git that you do not need help by setting these to 'false':
# +
#
#--
# fetchShowForcedUpdates::
# Advice shown when linkgit:git-fetch[1] takes a long time
# to calculate forced updates after ref updates, or to warn
# that the check is disabled.
# pushUpdateRejected::
# Set this variable to 'false' if you want to disable
# 'pushNonFFCurrent',
# 'pushNonFFMatching', 'pushAlreadyExists',
# 'pushFetchFirst', & 'pushNeedsForce'
# simultaneously.
# pushNonFFCurrent::
# Advice shown when linkgit:git-push[1] fails due to a
# non-fast-forward update to the current branch.
# pushNonFFMatching::
# Advice shown when you ran linkgit:git-push[1] & pushed
# 'matching refs' explicitly (i.e. you used ':', or
# specified a refspec that isn't your current branch) &
# it resulted in a non-fast-forward error.
# pushAlreadyExists::
# Shown when linkgit:git-push[1] rejects an update that
# does not qualify for fast-forwarding (e.g., a tag.)
# pushFetchFirst::
# Shown when linkgit:git-push[1] rejects an update that
# tries to overwrite a remote ref that points at an
# object we do not have.
# pushNeedsForce::
# Shown when linkgit:git-push[1] rejects an update that
# tries to overwrite a remote ref that points at an
# object that isn't a commit-ish, or make the remote
# ref point at an object that isn't a commit-ish.
# pushUnqualifiedRefname::
# Shown when linkgit:git-push[1] gives up trying to
# guess based on the source & destination refs what
# remote ref namespace the source belongs in, but where
# we can still suggest that the user push to either
# refs/heads/* or refs/tags/* based on the type of the
# source object.
# pushRefNeedsUpdate::
# Shown when linkgit:git-push[1] rejects a forced update of
# a branch when its remote-tracking ref has updates that we
# do not have locally.
# statusAheadBehind::
# Shown when linkgit:git-status[1] computes the ahead/behind
# counts for a local ref compared to its remote tracking ref,
# & that calculation takes longer than expected. Will not
# appear if `status.aheadBehind` is false or the option
# `--no-ahead-behind` is given.
# statusHints::
# Show directions on how to proceed from the current
# state in the output of linkgit:git-status[1], in
# the template shown when writing commit messages in
# linkgit:git-commit[1], & in the help message shown
# by linkgit:git-switch[1] or
# linkgit:git-checkout[1] when switching branch.
# statusUoption::
# Advise to consider using the `-u` option to linkgit:git-status[1]
# when the command takes more than 2 seconds to enumerate untracked
# files.
# commitBeforeMerge::
# Advice shown when linkgit:git-merge[1] refuses to
# merge to avoid overwriting local changes.
# resetQuiet::
# Advice to consider using the `--quiet` option to linkgit:git-reset[1]
# when the command takes more than 2 seconds to enumerate unstaged
# changes after reset.
# resolveConflict::
# Advice shown by various commands when conflicts
# prevent the operation from being performed.
# sequencerInUse::
# Advice shown when a sequencer command is already in progress.
# implicitIdentity::
# Advice on how to set your identity configuration when
# your information is guessed from the system username &
# domain name.
# detachedHead::
# Advice shown when you used
# linkgit:git-switch[1] or linkgit:git-checkout[1]
# to move to the detach HEAD state, to instruct how to
# create a local branch after the fact.
# checkoutAmbiguousRemoteBranchName::
# Advice shown when the argument to
# linkgit:git-checkout[1] & linkgit:git-switch[1]
# ambiguously resolves to a
# remote tracking branch on more than one remote in
# situations where an unambiguous argument would have
# otherwise caused a remote-tracking branch to be
# checked out. See the `checkout.defaultRemote`
# configuration variable for how to set a given remote
# to used by default in some situations where this
# advice would be printed.
# amWorkDir::
# Advice that shows the location of the patch file when
# linkgit:git-am[1] fails to apply it.
# rmHints::
# In case of failure in the output of linkgit:git-rm[1],
# show directions on how to proceed from the current state.
# addEmbeddedRepo::
# Advice on what to do when you've accidentally added one
# git repo inside of another.
# ignoredHook::
# Advice shown if a hook is ignored because the hook is not
# set as executable.
# waitingForEditor::
# Print a message to the terminal whenever Git is waiting for
# editor input from the user.
# nestedTag::
# Advice shown if a user attempts to recursively tag a tag object.
# submoduleAlternateErrorStrategyDie:
# Advice shown when a submodule.alternateErrorStrategy option
# configured to "die" causes a fatal error.
# addIgnoredFile::
# Advice shown if a user attempts to add an ignored file to
# the index.
# addEmptyPathspec::
# Advice shown if a user runs the add command without providing
# the pathspec parameter.
#--
[alias]
# *=
# Command aliases for the linkgit:git[1] command wrapper - e.g.
# after defining `alias.last = cat-file commit HEAD`, the invocation
# `git last` is equivalent to `git cat-file commit HEAD`. To avoid
# confusion & troubles with script usage, aliases that
# hide existing Git commands are ignored. Arguments are split by
# spaces, the usual shell quoting & escaping is supported.
# A quote pair or a backslash can be used to quote them.
# +
# NOTE: the 1st word of an alias does not necessarily have to be a
# command. It can be a command-line option that will be passed into the
# invocation of `git`. In particular, this is useful when used with `-c`
# to pass in one-time configurations or `-p` to force pagination. For example,
# `loud-rebase = -c commit.verbose=true rebase` can be defined such that
# running `git loud-rebase` would be equivalent to
# `git -c commit.verbose=true rebase`. Also, `ps = -p status` would be a
# helpful alias since `git ps` would paginate the output of `git status`
# where the original command does not.
# +
# If the alias expansion is prefixed with an exclamation point,
# 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`. NOTE: shell commands will be
# executed from the top-level directory of a repository, which may
# not necessarily be the current directory.
# `GIT_PREFIX` is set as returned by running `git rev-parse --show-prefix`
# from the original current directory. See linkgit:git-rev-parse[1].
fclone = clone --recurse-submodules --shallow-submodules --depth 1 --template="" --remote-submodules -v --no-single-branch
hinit = !git init "$@" && git reset --hard
hublang = "!f(){ A=${1#*github.com/}; shift; [ \"${A%/*}\" = \"$A\" ] && hub api repos/$A/$A/languages -t \"$@\" || hub api repos/$A/languages -t \"$@\"; };f"
hublangall = "!f(){ for i;do echo $i; git hublang \"$i\";done;}; f"
# Use sparse-checkout
sparse-clone-deprecated = "!f(){ [ $# -eq 2 ] && L=${1##*/} L=${L%.git} || L=$2; mkdir -p \"$L/.git/info\" && cd \"$L\" && git init && git reset --hard && git remote add origin \"$1\" && git config core.sparseCheckout 1; [ $# -eq 2 ] && echo \"$2\" >> .git/info/sparse-checkout || { shift 2; for i; do echo $i >> .git/info/sparse-checkout; done }; git pull --depth 1 origin master;};f"
# sparse-fclone helper \
sparse-fclone = "!f() {\n\t[ $# -eq 0 ] && {\n\t\tprintf '<alias> <url> <params-to-pass-to-fclone> <url> [dir] <params-to-sparse-checkout>'\n\t\texit 0\n\t}\n\tclone='clone --depth 1 --no-single-branch --shallow-submodules --filter=blob:none'\n\tclone=\"$clone --remote-submodules\"\n\turl=''\n\tisSparse=''\n\twhile [ $# -gt 0 ]; do\n\t\tcase $1 in\n\t\t--bare)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--branch | -b)\n\t\t\tclone=\"$clone -b\"\n\t\t\tshift\n\t\t\t;;\n\t\t--config | -c)\n\t\t\tclone=\"$clone -c\"\n\t\t\tclone=\"$clone $2\"\n\t\t\tshift 2\n\t\t\t;;\n\t\t--depth)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--dissociate)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--filter=*)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--jobs | -j)\n\t\t\tclone=\"$clone -j\"\n\t\t\tshift\n\t\t\t;;\n\t\t--local | -l)\n\t\t\tclone=\"$clone -l\"\n\t\t\tclone=\"$clone $2\"\n\t\t\tshift 2\n\t\t\t;;\n\t\t--mirror)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--no-checkout | -n)\n\t\t\tclone=\"$clone -n\"\n\t\t\tshift\n\t\t\t;;\n\t\t--no-hardlinks)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--no-shallow-submodules | --shallow-submodules)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--no-single-branch | --single-branch)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--no-tags)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--origin | -o)\n\t\t\tclone=\"$clone -o\"\n\t\t\tshift\n\t\t\t;;\n\t\t--progress)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--quiet | -q)\n\t\t\tclone=\"$clone -q\"\n\t\t\tshift\n\t\t\t;;\n\t\t--recurse-submodules=* | --recurse-submodules)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--reference | --reference-if-able)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--seperate-git-dir=*)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--server-option=*)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--shallow-since=* | --shallow-exclude=*)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--shared | -s)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--sparse)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\tisSparse='1'\n\t\t\t;;\n\t\t--template=*)\n\t\t\tclone=\"$clone $1\"\n\t\t\tshift\n\t\t\t;;\n\t\t--upload-pack | -u)\n\t\t\tclone=\"$clone -u\"\n\t\t\tclone=\"$clone $2\"\n\t\t\tshift 2\n\t\t\t;;\n\t\t--verbose | -v)\n\t\t\tclone=\"$clone -v\"\n\t\t\tshift\n\t\t\t;;\n\t\t--)\n\t\t\turl=\"$2\"\n\t\t\tshift 2\n\t\t\tbreak\n\t\t\t;;\n\t\t*)\n\t\t\turl=\"$1\"\n\t\t\tshift\n\t\t\tbreak\n\t\t\t;;\n\t\tesac\n\tdone\n\tinitCmd='sparse-checkout init'\n\tsetCmd='sparse-checkout set'\n\ttargDir=''\n\twhile [ $# -gt 0 ]; do\n\t\tcase $1 in\n\t\t--cone)\n\t\t\tinitCmd=\"$initCmd $1\"\n\t\t\tisSparse='1'\n\t\t\tshift\n\t\t\t;;\n\t\t--stdin)\n\t\t\tsetCmd=\"$setCmd $1\"\n\t\t\tisSparse='1'\n\t\t\tshift\n\t\t\t;;\n\t\t*)\n\t\t\t{ [ -z \"$targDir\" ] && targDir=\"$1\"; } || {\n\t\t\t\tsetCmd=\"$setCmd $1\"\n\t\t\t\tisSparse='1'\n\t\t\t}\n\t\t\tshift\n\t\t\t;;\n\t\tesac\n\tdone\n\n\tgithubPath=${url#*github*.com}\n#\texport GIT_TRACE=1 GIT_TRACE_PERFORMANCE=1\n\tGIT_CURL_VERBOSE=1\n\t[ \"$url\" = \"$githubPath\" ] || {\n\t\tcase $githubPath in\n\t\t/*/*/tree/*/*)\n\t\t\tnoslash=${githubPath#/}\n\t\t\tauthor=${noslash%%/*}\n\t\t\trepo=${noslash#$author/}\n\t\t\trepo=${repo%%/*}\n\t\t\tsparsed=${noslash#*/*/tree/*/}\n\t\t\tisSparse='1'\n\t\t\ttargDir=\"$author/$repo\"\n\t\t\turl=\"https://github.com/$author/$repo\"\n\t\t\tinitCmd=\"$initCmd --cone\"\n\t\t\t;;\n\t\t/*/*/blob/*/*)\n\t\t\tnoslash=${githubPath#/}\n\t\t\tauthor=${noslash%%/*}\n\t\t\trepo=${noslash#$author/}\n\t\t\trepo=${repo%%/*}\n\t\t\tsparsed=${noslash#*/*/blob/*/}\n\t\t\tisSparse='1'\n\t\t\ttargDir=\"$author/$repo\"\n\t\t\turl=\"https://github.com/$author/$repo\"\n\t\t\t;;\n\t\t/*/* | /*/*.git | /*/*/tree/master)\n\t\t\tnoslash=${githubPath%.git}\n\t\t\tnoslash=${noslash#/}\n\t\t\t[ -z \"$targDir\" ] && targDir=\"$noslash\"\n\t\t\t[ -n \"$targDir\" ] && {\n\t\t\t\tprintf 'DETECT: ONLY Github REPO URL given, simply cloning\\n%s \"%s\" \"%s\"' \"$clone\" \"$url\" \"$targDir\"\n\t\t\t\tgit $clone \"$url\" \"$targDir\"\n\t\t\t\texit\n\t\t\t}\n\t\t\tprintf 'DETECT: Github REPO URL\\n'\n\t\t\t;;\n\t\t*)\n\t\t\tprintf 'ERROR: No matching github URL format. Exiting...\\n'\n\t\t\texit 1\n\t\t\t;;\n\t\tesac\n\t}\n\t[ -n \"$isSparse\" ] && {\n\t\tclone=\"$clone -n --sparse -c core.sparseCheckout=1\"\n\t\tclone=\"$clone -c core.sparseCheckoutCone=1\"\n\t\tsetCmd=\"$setCmd $sparsed\"\n#\t\tinitCmd=\"$initCmd --cone\"\n\t}\n\tclone=\"$clone $url $targDir\"\n\tset -x\n\tgit $clone\n\tgit=git\\ --git-dir=\"$targDir/.git\"\\ --work-tree=\"$targDir\"\n\t$git branch -a\n\tdu -hc --max-depth=1 \"$PWD/$targDir\"\n#\t$git $initCmd\n\t$git $setCmd\n\tdu -hc --max-depth=1 \"$PWD/$targDir\"\n#\t$git checkout\n\t$git sparse-checkout list\n\tdu -hc --max-depth=1 \"$PWD/$targDir\"\n\t$git read-tree --reset origin -u\n\tdu -hc --max-depth=1 \"$PWD/$targDir\"\n}\nf"
[am]
# keepcr=
# If true, git-am will call git-mailsplit for patches in mbox format
# with parameter `--keep-cr`. In this case git-mailsplit will
# not remove `\r` from lines ending with `\r\n`. Can be overridden
# by giving `--no-keep-cr` from the command line.
# See linkgit:git-am[1], linkgit:git-mailsplit[1].
# threeWay=
# By default, `git am` will fail if the patch does not apply cleanly. When
# set to true, this setting tells `git am` to fall back on 3-way merge if
# the patch records the identity of blobs it is supposed to apply to &
# we have those blobs available locally (equivalent to giving the `--3way`
# option from the command line). DEFAULT=`false`.
# See linkgit:git-am[1].
[apply]
# ignoreWhitespace=
# When set to 'change', tells 'git apply' to ignore changes in
# whitespace, in the same way as the `--ignore-space-change`
# option.
# When set to one of: no, none, never, false tells 'git apply' to
# respect all whitespace differences.
# See linkgit:git-apply[1].
# whitespace=
# Tells 'git apply' how to handle whitespaces, in the same way
# as the `--whitespace` option. See linkgit:git-apply[1].
#
# When no `--whitespace` flag is given from the command
# line, this configuration item is used as the default.
[author]
# email=
# name=
[blame]
# blankBoundary=
# Show blank commit object name for boundary commits in
# linkgit:git-blame[1]. DEFAULT=false.
coloring=highlightRecent
# This determines the coloring scheme to be applied to blame
# output. It can be 'repeatedLines', 'highlightRecent',
# or 'none' which is the default.
# date=
# Specifies the format used to output dates in linkgit:git-blame[1].
# If unset the iso format is used. For supported values,
# see the discussion of the `--date` option at linkgit:git-log[1].
# ignoreRevsFile=
# Ignore revisions listed in the file, one unabbreviated object name per
# line, in linkgit:git-blame[1]. Whitespace & comments beginning with
# `#` are ignored. This option may be repeated multiple times. Empty
# file names will reset the list of ignored revisions. This option will
# be handled before the command line option `--ignore-revs-file`.
# markIgnoredLines=
# Mark lines that were changed by an ignored revision that we attributed to
# another commit with a '?' in the output of linkgit:git-blame[1].
# markUnblamables=
# Mark lines that were changed by an ignored revision that we could not
# attribute to another commit with a '*' in the output of
# linkgit:git-blame[1].
# showEmail=
# Show the author email instead of author name in linkgit:git-blame[1].
# DEFAULT=false.
# showRoot=
# Do not treat root commits as boundaries in linkgit:git-blame[1].
# DEFAULT=false.
[branch]
# autoSetupMerge=
# Tells 'git branch', 'git switch' & 'git checkout' to set up new branches
# so that linkgit:git-pull[1] will appropriately merge from the
# starting point branch. NOTE: even if this option isn't set,
# this behavior can be chosen per-branch using the `--track`
# & `--no-track` options. The valid settings are: `false` -- no
# automatic setup is done; `true` -- automatic setup is done when the
# starting point is a remote-tracking branch; `always` --
# automatic setup is done when the starting point is either a
# local branch or remote-tracking
# branch. DEFAULT=true.
autoSetupRebase=always
# When a new branch is created with 'git branch', 'git switch' or 'git checkout'
# that tracks another branch, this variable tells Git to set
# up pull to rebase instead of merge (see "branch.<name>.rebase").
# When `never`, rebase is never automatically set to true.
# When `local`, rebase is set to true for tracked branches of
# other local branches.
# When `remote`, rebase is set to true for tracked branches of
# remote-tracking branches.
# When `always`, rebase will be set to true for all tracking
# branches.
# See "branch.autoSetupMerge" for details on how to set up a
# branch to track another branch.
# DEFAULT=never.
# sort=
# This variable controls the sort ordering of branches when displayed by
# linkgit:git-branch[1]. Without the "--sort=<value>" option provided, the
# value of this variable will be used as the default.
# See linkgit:git-for-each-ref[1] field names for valid values.
#[branch "<name>"]
# description=
# Branch description, can be edited with
# `git branch --edit-description`. Branch description is
# automatically added in the format-patch cover letter or
# request-pull summary.
# merge=
# Defines, together with branch.<name>.remote, the upstream branch
# for the given branch. It tells 'git fetch'/'git pull'/'git rebase' which
# branch to merge & can also affect 'git push' (see push.default).
# When in branch <name>, it tells 'git fetch' the default
# refspec to be marked for merging in FETCH_HEAD. The value is
# handled like the remote part of a refspec, & must match a
# ref which is fetched from the remote given by
# "branch.<name>.remote".
# The merge information is used by 'git pull' (which at 1st calls
# 'git fetch') to lookup the default branch for merging. Without
# this option, 'git pull' DEFAULT=merge the 1st refspec fetched.
# Specify multiple values to get an octopus merge.
# If you wish to setup 'git pull' so that it merges into <name> from
# another branch in the local repository, you can point
# branch.<name>.merge to the desired branch, & use the relative path
# setting `.` (a period) for branch.<name>.remote.
# mergeOptions=
# Sets default options for merging into branch <name>. The syntax &
# supported options are the same as those of linkgit:git-merge[1], but
# option values containing whitespace characters are currently not
# supported.
# pushRemote=
# When on branch <name>, it overrides `branch.<name>.remote` for
# pushing. It also overrides `remote.pushDefault` for pushing
# from branch <name>. When you pull from one place (e.g. your
# upstream) & push to another place (e.g. your own publishing
# repository), you would want to set `remote.pushDefault` to
# specify the remote to push to for all branches, & use this
# option to override it for a specific branch.
# rebase=
# When true, rebase the branch <name> on top of the fetched branch,
# instead of merging the default branch from the default remote when
# "git pull" is run. See "pull.rebase" for doing this in a non
# branch-specific manner.
# +
# When `merges`, pass the `--rebase-merges` option to 'git rebase'
# so that the local merge commits are included in the rebase (see
# linkgit:git-rebase[1] for details).
# +
# When `preserve` (deprecated in favor of `merges`), also pass
# `--preserve-merges` along to 'git rebase' so that locally committed merge
# commits will not be flattened by running 'git pull'.
# +
# When the value is `interactive`, the rebase is run in interactive mode.
# +
# *NOTE*: this is a possibly dangerous operation; do *not* use
# it unless you understand the implications (see linkgit:git-rebase[1]
# for details).
# remote=
# When on branch <name>, it tells 'git fetch' & 'git push'
# which remote to fetch from/push to. The remote to push to
# may be overridden with `remote.pushDefault` (for all branches).
# The remote to push to, for the current branch, may be further
# overridden by `branch.<name>.pushRemote`. If no remote is
# configured, or if you are not on any branch, it defaults to
# `origin` for fetching & `remote.pushDefault` for pushing.
# Additionally, `.` (a period) is the current local repository
# (a dot-repository), see `branch.<name>.merge`'s final note below.
#[browser "<tool>"]
# cmd=
# Specify the command to invoke the specified browser. The
# specified command is evaluated in shell with the URLs passed
# as arguments. (See linkgit:git-web{litdd}browse[1].)
# path=
# Override the path for the given tool that may be used to
# browse HTML help (see `-w` option in linkgit:git-help[1]) or a
# working repository in gitweb (see linkgit:git-instaweb[1]).
[browser "chrome"] #[browser "<tool>"]
cmd = \"C:/Program Files (x86)/Google/Chrome/Application/chrome.exe\"
path = C:/Program Files (x86)/Google/Chrome/Application/chrome.exe
[checkout]
# defaultRemote=
# When you run 'git checkout <something>'
# or 'git switch <something>' & only have one
# remote, it may implicitly fall back on checking out &
# tracking e.g. 'origin/<something>'. This stops working as soon
# as you have more than one remote with a '<something>'
# reference. This setting allows for setting the name of a
# preferred remote that should always win when it comes to
# disambiguation. The typical use-case is to set this to
# `origin`.
# +
# Currently this is used by linkgit:git-switch[1] and
# linkgit:git-checkout[1] when 'git checkout <something>'
# or 'git switch <something>'
# will checkout the '<something>' branch on another remote,
# and by linkgit:git-worktree[1] when 'git worktree add' refers to a
# remote branch. This setting might be used for other checkout-like
# commands or functionality in the future.
optimizeNewBranch = 1
# Removed in 65f099b3988198f0fdf3ef7a21dc01c556d21fff (29 Mar 2019)
# Optimizes the performance of "git checkout -b <new_branch>" when using sparse-checkout. When true, git will not update the repo based on the current sparse-checkout settings. This means it will not update the skip-worktree bit in the index nor add/remove files in the working directory to reflect the current sparse checkout settings nor will it show the local changes.
# guess=
[clean]
requireForce=0
# A boolean to make git-clean do nothing unless given -f,
# -i or -n. DEFAULT=true.
[color]
# advice=
# A boolean to enable/disable color in hints (e.g. when a push
# failed, see `advice.*` for a list). May be set to `always`,
# `false` (or `never`) or `auto` (or `true`), in which case colors
# are used only when the error output goes to a terminal. If
# unset, then the value of `color.ui` is used (`auto` by default).
# branch=
# A boolean to enable/disable color in the output of
# linkgit:git-branch[1]. May be set to `always`,
# `false` (or `never`) or `auto` (or `true`), in which case colors are used
# only when the output is to a terminal. If unset, then the
# value of `color.ui` is used (`auto` by default).
# diff=
# Whether to use ANSI escape sequences to add color to patches.
# If this is set to `always`, linkgit:git-diff[1],
# linkgit:git-log[1], & linkgit:git-show[1] will use color
# for all patches. If it is set to `true` or `auto`, those
# commands will only use color when output is to the terminal.
# If unset, then the value of `color.ui` is used (`auto` by
# default).
# +
# This does not affect linkgit:git-format-patch[1] or the
# 'git-diff-{asterisk}' plumbing commands. Can be overridden on the
# command line with the `--color[=<when>]` option.
# grep=
# When set to `always`, always highlight matches. When `false` (or
# `never`), never. When set to `true` or `auto`, use color only
# when the output is written to the terminal. If unset, then the
# value of `color.ui` is used (`auto` by default).
# interactive=
# When set to `always`, always use colors for interactive prompts
# and displays (such as those used by "git-add --interactive" &
# "git-clean --interactive"). When false (or `never`), never.
# When set to `true` or `auto`, use colors only when the output is
# to the terminal. If unset, then the value of `color.ui` is
# used (`auto` by default).
# pager=
# A boolean to enable/disable colored output when the pager is in
# use (DEFAULT=true).
# push=
# A boolean to enable/disable color in push errors. May be set to
# `always`, `false` (or `never`) or `auto` (or `true`), in which
# case colors are used only when the error output goes to a terminal.
# If unset, then the value of `color.ui` is used (`auto` by default).
# remote=
# If set, keywords at the start of the line are highlighted. The
# keywords are "error", "warning", "hint" and "success", & are
# matched case-insensitively. May be set to `always`, `false` (or
# `never`) or `auto` (or `true`). If unset, then the value of
# `color.ui` is used (`auto` by default).
# showBranch=
# A boolean to enable/disable color in the output of
# linkgit:git-show-branch[1]. May be set to `always`,
# `false` (or `never`) or `auto` (or `true`), in which case colors are used
# only when the output is to a terminal. If unset, then the
# value of `color.ui` is used (`auto` by default).
# status=
# A boolean to enable/disable color in the output of
# linkgit:git-status[1]. May be set to `always`,
# `false` (or `never`) or `auto` (or `true`), in which case colors are used
# only when the output is to a terminal. If unset, then the
# value of `color.ui` is used (`auto` by default).
# transport=
# A boolean to enable/disable color when pushes are rejected. May be
# set to `always`, `false` (or `never`) or `auto` (or `true`), in which
# case colors are used only when the error output goes to a terminal.
# If unset, then the value of `color.ui` is used (`auto` by default).
# ui=
# This variable determines the default value for variables such
# as `color.diff` & `color.grep` that control the use of color
# per command family. Its scope will expand as more commands learn
# configuration to set a default for the `--color` option. Set it
# to `false` or `never` if you prefer Git commands not to use
# color unless enabled explicitly with some other configuration
# or the `--color` option. Set it to `always` if you want all
# output not intended for machine consumption to use color, to
# `true` or `auto` (this is the default since Git 1.8.4) if you
# want such output to use color when written to the terminal.
[color "advice"]
# hint=
# Use customized color for hints.
[color "blame"]
# highlightRecent=
# This can be used to color the metadata of a blame line depending
# on age of the line.
# +
# This setting should be set to a comma-separated list of color and date settings,
# starting and ending with a color, the dates should be set from oldest to newest.
# The metadata will be colored given the colors if the line was introduced
# before the given timestamp, overwriting older timestamped colors.
# +
# Instead of an absolute timestamp relative timestamps work as well, e.g.
# 2.weeks.ago is valid to address anything older than 2 weeks.
# +
# DEFAULT='blue,12 month ago,white,1 month ago,red', which colors
# everything older than one year blue, recent changes between one month and
# one year old are kept white, and lines introduced within the last month are
# colored red.
# repeatedLines=
# Use the customized color for the part of git-blame output that
# is repeated meta information per line (such as commit id,
# author name, date & timezone). DEFAULT=cyan.
[color "branch"]
# <slot>=
# Use customized color for branch coloration. `<slot>` is one of
# `current` (the current branch), `local` (a local branch),
# `remote` (a remote-tracking branch in refs/remotes/),
# `upstream` (upstream tracking branch), `plain` (other
# refs).
[color "decorate"]
# <slot>=
# Use customized color for 'git log --decorate' output. `<slot>` is one
# of `branch`, `remoteBranch`, `tag`, `stash` or `HEAD` for local
# branches, remote-tracking branches, tags, stash & HEAD, respectively
# & `grafted` for grafted commits.
[color "diff"]
# <slot>=
# Use customized color for diff colorization. `<slot>` specifies
# which part of the patch to use the specified color, & is one
# of `context` (context text - `plain` is a historical synonym),
# `meta` (metainformation), `frag`
# (hunk header), 'func' (function in hunk header), `old` (removed lines),
# `new` (added lines), `commit` (commit headers), `whitespace`
# (highlighting whitespace errors), `oldMoved` (deleted lines),
# `newMoved` (added lines), `oldMovedDimmed`, `oldMovedAlternative`,
# `oldMovedAlternativeDimmed`, `newMovedDimmed`, `newMovedAlternative`
# `newMovedAlternativeDimmed` (See the '<mode>'
# setting of '--color-moved' in linkgit:git-diff[1] for details),
# `contextDimmed`, `oldDimmed`, `newDimmed`, `contextBold`,
# `oldBold`, & `newBold` (see linkgit:git-range-diff[1] for details).
[color "grep"]
# <slot>=
# Use customized color for grep colorization. `<slot>` specifies which
# part of the line to use the specified color, & is one of
# +
# --
# `context`;;
# non-matching text in context lines (when using `-A`, `-B`, or `-C`)
# `filename`;;
# filename prefix (when not using `-h`)
# `function`;;
# function name lines (when using `-p`)
# `lineNumber`;;
# line number prefix (when using `-n`)
# `column`;;
# column number prefix (when using `--column`)
# `match`;;
# matching text (same as setting `matchContext` and `matchSelected`)
# `matchContext`;;
# matching text in context lines
# `matchSelected`;;
# matching text in selected lines
# `selected`;;
# non-matching text in selected lines
# `separator`;;
# separators between fields on a line (`:`, `-`, and `=`)
# and between hunks (`--`)
# --
[color "interactive"]
# <slot>=
# Use customized color for 'git add --interactive' & 'git clean
# --interactive' output. `<slot>` may be `prompt`, `header`, `help`
# or `error`, for four distinct types of normal output from
# interactive commands.
[color "push"]
# error=
# Use customized color for push errors.
[color "remote"]
# <slot>=
# Use customized color for each remote keyword. `<slot>` may be
# `hint`, `warning`, `success` or `error` which match the
# corresponding keyword.
[color "status"]
# <slot>=
# Use customized color for status colorization. `<slot>` is
# one of `header` (the header text of the status message),
# `added` or `updated` (files which are added but not committed),
# `changed` (files which are changed but not added in the index),
# `untracked` (files which are not tracked by Git),
# `branch` (the current branch),
# `nobranch` (the color the 'no branch' warning is shown in, defaulting
# to red),
# `localBranch` or `remoteBranch` (the local & remote branch names,
# respectively, when branch & tracking information is displayed in the
# status short-format), or
# `unmerged` (files which have unmerged changes).
[color "transport"]
# rejected=
# Use customized color when a push was rejected.
[column]
# branch=
# Specify whether to output branch listing in `git branch` in columns.
# See `column.ui` for details.
# clean=
# Specify the layout when list items in `git clean -i`, which always
# shows files & directories in columns. See `column.ui` for details.
# status=
# Specify whether to output untracked files in `git status` in columns.
# See `column.ui` for details.
# tag=
# Specify whether to output tag listing in `git tag` in columns.
# See `column.ui` for details.
# ui=
# Specify whether supported commands should output in columns.
# This variable consists of a list of tokens separated by spaces
# or commas:
# +
# These options control when the feature should be enabled
# (DEFAULT='never'):
# +
# --
# `always`;;
# always show in columns
# `never`;;
# never show in columns
# `auto`;;
# show in columns if the output is to the terminal
# --
# +
# These options control layout (DEFAULT='column'). Setting any
# of these implies 'always' if none of 'always', 'never', or 'auto' are
# specified.
# +
# --
# `column`;;
# fill columns before rows
# `row`;;
# fill rows before columns
# `plain`;;
# show in one column
# --
# +
# Finally, these options can be combined with a layout option (defaults
# to 'nodense'):
# +
# --
# `dense`;;
# make unequal size columns to utilize more space
# `nodense`;;
# make equal size columns
# --
[commit]
# cleanup=
# This setting overrides the default of the `--cleanup` option in
# `git commit`. See linkgit:git-commit[1] for details. Changing the
# default can be useful when you always want to keep lines that begin
# with comment character `#` in your log message, in which case you
# would do `git config commit.cleanup whitespace` (note that you will
# have to remove the help lines that begin with `#` in the commit log
# template yourself, if you do this).
# gpgSign=
#
# A boolean to specify whether all commits should be GPG signed.
# Use of this option when doing operations such as rebase can
# result in a large number of commits being signed. It may be
# convenient to use an agent to avoid typing your GPG passphrase
# several times.
# status=
# A boolean to enable/disable inclusion of status information in the
# commit message template when using an editor to prepare the commit
# message. DEFAULT=true.
# template=
# Specify the pathname of a file to use as the template for
# new commit messages.
# verbose=
# A boolean or int to specify the level of verbose with `git commit`.
# See linkgit:git-commit[1].
[commitGraph]
# maxNewFilters=
# readChangedPaths=
[committer]
# email=
# name=
[completion]
# commands=
# This is only used by git-completion.bash to add or remove
# commands from the list of completed commands. Normally only
# porcelain commands & a few select others are completed. You
# can add more commands, separated by space, in this
# variable. Prefixing the command with '-' will remove it from
# the existing list.
#[config]
# worktree=
# Working directory specific configuration file for the main
# working directory in multiple working directory setup (see
# linkgit:git-worktree[1]).
[core]
# abbrev=
# Set the length object names are abbreviated to. If
# unspecified or set to "auto", an appropriate value is
# computed based on the approximate number of packed objects
# in your repository, which hopefully is enough for
# abbreviated object names to stay unique for some time.
# The minimum length is 4.
# alternateRefsCommand=
# When advertising tips of available history from an alternate, use the shell to
# execute the specified command instead of linkgit:git-for-each-ref[1]. The
# 1st argument is the absolute path of the alternate. Output must contain one
# hex object id per line (i.e., the same as produced by `git for-each-ref
# --format='%(objectname)'`).
# +
# NOTE: you can't generally put `git for-each-ref` directly into the config
# value, as it does not take a repository path as an argument (but you can wrap
# the command above in a shell script).
# alternateRefsPrefixes=
# When listing references from an alternate, list only references that begin
# with the given prefix. Prefixes match as if they were given as arguments to
# linkgit:git-for-each-ref[1]. To list multiple prefixes, separate them with
# whitespace. If `core.alternateRefsCommand` is set, setting
# `core.alternateRefsPrefixes` has no effect.
# askPass=
# Some commands (e.g. svn & 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 & write the password on its STDOUT.
# attributesFile=
# In addition to `.gitattributes` (per-directory) &
# `.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.
autocrlf=0
# Setting this variable to "true" is the same as setting
# the `text` attribute to "auto" on all files & core.eol to "crlf".
# Set to true if you want to have `CRLF` line endings in your
# working directory & the repository has LF line endings.
# This variable can be set to 'input',
# in which case no output conversion is performed.
# bare=
# If true this repository is assumed to be 'bare' & has no
# working directory associated with it. If this is the case a
# number of commands that require a working directory will be
# disabled, such as linkgit:git-add[1] or linkgit:git-merge[1].
# +
# This setting is automatically guessed by linkgit:git-clone[1] or
# linkgit:git-init[1] when the repository was created. By default a
# repository that ends in "/.git" is assumed to be not bare (bare =
# false), while all other repositories are assumed to be bare (bare
# = true).
# bigFileThreshold=
# Files larger than this size are stored deflated, without
# attempting delta compression. Storing large files without
# delta compression avoids excessive memory usage, at the
# slight expense of increased disk usage. Additionally files
# larger than this size are always treated as binary.
# +
# DEFAULT=512 MiB on all platforms. This should be reasonable
# for most projects as source code and other text files can still
# be delta compressed, but larger binary media files won't be.
# +
# Common unit suffixes of 'k', 'm', or 'g' are supported.
# checkRoundtripEncoding=
# A comma &/or whitespace separated list of encodings that Git
# performs UTF-8 round trip checks on if they are used in an
# `working-tree-encoding` attribute (see linkgit:gitattributes[5]).
# The default value is `SHIFT-JIS`.
# checkStat=
# When missing or is set to `default`, many fields in the stat
# structure are checked to detect if a file has been modified
# since Git looked at it. When this configuration variable is
# set to `minimal`, sub-second part of mtime & ctime, the
# uid and gid of the owner of the file, the inode number (&
# the device number, if Git was compiled to use it), are
# excluded from the check among these fields, leaving only the
# whole-second part of mtime (& ctime, if `core.trustCtime`
# is set) & the filesize to be checked.
# +
# There are implementations of Git that do not leave usable values in
# some fields (e.g. JGit); by excluding these fields from the
# comparison, the `minimal` mode may help interoperability when the
# same repository is used by these other systems at the same time.
# commentChar=
# Commands such as `commit` & `tag` that let you edit
# messages consider a line that begins with this character
# commented, & 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.
# commitGraph=
# If true, then git will read the commit-graph file (if it exists)
# to parse the graph structure of commits. DEFAULT=true. See
# linkgit:git-commit-graph[1] for more information.
compression=1
# An integer -1..9, indicating a default compression level.
# -1 is the zlib default. 0 means no compression,
# & 1..9 are various speed/size tradeoffs, 9 being slowest.
# If set, this provides a default to other compression variables,
# such as `core.looseCompression` & `pack.compression`.
# 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.
# deltaBaseCacheLimit=
# Maximum number of bytes to reserve for caching base objects
# that may be referenced by multiple deltified objects. By storing the
# entire decompressed base objects in a cache Git is able
# to avoid unpacking & decompressing frequently used base
# objects multiple times.
# +
# DEFAULT=96 MiB on all platforms. This should be reasonable
# for all users/operating systems, except on the largest projects.
# You probably do not need to adjust this value.
# +
# Common unit suffixes of 'k', 'm', or 'g' are supported.
editor=C:/tools/scoop/apps/current/subl.exe
# Commands such as `commit` & `tag` that let you edit
# messages by launching an editor use the value of this
# variable when it is set, & the environment variable
# `GIT_EDITOR` isn't set. See linkgit:git-var[1].
# eol=
# Sets the line ending type to use in the working directory for
# files that are marked as text (either by having the `text`
# attribute set, or by having `text=auto` & Git auto-detecting
# the contents as text).
# Alternatives are 'lf', 'crlf' & 'native', which uses the platform's
# native line ending. The default value is `native`. See
# linkgit:gitattributes[5] for more information on end-of-line
# conversion. NOTE: this value is ignored if `core.autocrlf`
# is set to `true` or `input`.
# 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) & `.git/info/exclude`.
# DEFAULT=`$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].
fileMode=0
# 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].
# +
# DEFAULT=true (when core.filemode isn't specified in the config file).
# filesRefLockTimeout=
# The length of time, in milliseconds, to retry when trying to
# lock an individual reference. Value 0 means not to retry at
# all; -1 means to try indefinitely. DEFAULT=100 (i.e.,
# retry for 100ms).
# fsmonitor=
# If set, the value of this variable is used as a command which
# will identify all files that may have changed since the
# requested date/time. This information is used to speed up git by
# avoiding unnecessary processing of files that have not changed.
# See the "fsmonitor-watchman" section of linkgit:githooks[5].
# fsmonitorHookVersion=
# fsyncObjectFiles=
# This boolean will enable 'fsync()' when writing object files.
# +
# This is a total waste of time and effort on a filesystem that orders
# data writes properly, but can be useful for filesystems that do not use
# journalling (traditional UNIX filesystems) or that only journal metadata
# and not file contents (OS X's HFS+, or Linux ext3 with "data=writeback").
# gitProxy=
# A "proxy command" to execute (as 'command host port') instead
# of establishing direct connection to the remote server when
# using the Git protocol for fetching. If the variable value is
# in the "COMMAND for DOMAIN" format, the command is applied only
# on hostnames ending with the specified domain string. This variable
# may be set multiple times & is matched in the given order;
# the 1st match wins.
# +
# Can be overridden by the `GIT_PROXY_COMMAND` environment variable
# (which always applies universally, without the special "for"
# handling).
# +
# The special string `none` can be used as the proxy command to
# specify that no proxy be used for a given domain pattern.
# This is useful for excluding servers inside a firewall from
# proxy use, while defaulting to a common proxy for external domains.
hideDotFiles=0
# (Windows-only) If true, mark newly-created directories & 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'.
# 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`, & 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.
# 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, & continue to remember it as
# "Makefile".
# +
# DEFAULT=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.
# ignoreStat=
# If true, Git will avoid using lstat() calls to detect if files have
# changed by setting the "assume-unchanged" bit for those tracked files
# which it has updated identically in both the index & working tree.
# +
# When files are modified outside of Git, the user will need to stage
# the modified files explicitly (e.g. see 'Examples' section in
# linkgit:git-update-index[1]).
# Git will not normally detect changes to those files.
# +
# This is useful on systems where lstat() calls are very slow, such as
# CIFS/Microsoft Windows.
# +
# False by default.
# logAllRefUpdates=
# Enable the reflog. Updates to a ref <ref> is logged to the file
# "`$GIT_DIR/logs/<ref>`", by appending the new & old
# SHA-1, the date/time & the reason of the update, but
# only when the file exists. If this configuration
# variable is set to `true`, missing "`$GIT_DIR/logs/<ref>`"
# file is automatically created for branch heads (i.e. under
# `refs/heads/`), remote refs (i.e. under `refs/remotes/`),
# note refs (i.e. under `refs/notes/`), & the symbolic ref `HEAD`.
# If it is set to `always`, then a missing reflog is automatically
# created for any ref under `refs/`.
# +
# This information can be used to determine what commit
# was the tip of a branch "2 days ago".
# +
# This value is true by default in a repository that has
# a working directory associated with it, and false by
# default in a bare repository.
# looseCompression=
# An integer -1..9, indicating the compression level for objects that
# are not in a pack file. -1 is the zlib default. 0 means no
# compression, & 1..9 are various speed/size tradeoffs, 9 being
# slowest. If not set, DEFAULT=core.compression. If that is
# not set, DEFAULT=1 (best speed).
# multiPackIndex=
# Use the multi-pack-index file to track multiple packfiles using a
# single index. See link:technical/multi-pack-index.html[the
# multi-pack-index design document].
# notesRef=
# When showing commit messages, also show notes which are stored in
# the given ref. The ref must be fully qualified. If the given
# ref does not exist, it isn't an error but means that no
# notes should be printed.
# +
# This setting DEFAULT="refs/notes/commits", and it can be overridden by
# the `GIT_NOTES_REF` environment variable. See linkgit:git-notes[1].
#
# Notes ref to read & manipulate instead of
# `refs/notes/commits`. Must be an unabbreviated ref name.
# This setting can be overridden through the environment &
# command line.
# packedGitLimit=
# Maximum number of bytes to map simultaneously into memory
# from pack files. If Git needs to access more than this many
# bytes at once to complete an operation it will unmap existing
# regions to reclaim virtual address space within the process.
# +
# DEFAULT=256 MiB on 32 bit platforms and 32 TiB (effectively
# unlimited) on 64 bit platforms.
# This should be reasonable for all users/operating systems, except on
# the largest projects. You probably do not need to adjust this value.
# +
# Common unit suffixes of 'k', 'm', or 'g' are supported.
# packedGitWindowSize=
# Number of bytes of a pack file to map into memory in a
# single mapping operation. Larger window sizes may allow
# your system to process a smaller number of large pack files
# more quickly. Smaller window sizes will negatively affect
# performance due to increased calls to the operating system's
# memory manager, but may improve performance when accessing
# a large number of large pack files.
# +
# DEFAULT=1 MiB if NO_MMAP was set at compile time, otherwise 32
# MiB on 32 bit platforms and 1 GiB on 64 bit platforms. This should
# be reasonable for all users/operating systems. You probably do
# not need to adjust this value.
# +
# Common unit suffixes of 'k', 'm', or 'g' are supported.
# packedRefsTimeout=
# The length of time, in milliseconds, to retry when trying to
# lock the `packed-refs` file. Value 0 means not to retry at
# all; -1 means to try indefinitely. DEFAULT=1000 (i.e.,
# retry for 1 second).
# pager=
# Text viewer for use by Git commands (e.g., 'less'). The value
# is meant to be interpreted by the shell. The order of preference
# is the `$GIT_PAGER` environment variable, then `core.pager`
# configuration, then `$PAGER`, & then the default chosen at
# compile time (usually 'less').
# +
# When the `LESS` environment variable is unset, Git sets it to `FRX`
# (if `LESS` environment variable is set, Git does not change it at
# all). If you want to selectively override Git's default setting
# for `LESS`, you can set `core.pager` to e.g. `less -S`. This will
# be passed to the shell by Git, which will translate the final
# command to `LESS=FRX less -S`. The environment does not set the
# `S` option but the command line does, instructing less to truncate
# long lines. Similarly, setting `core.pager` to `less -+F` will
# deactivate the `F` option specified by the environment from the
# command-line, deactivating the "quit if one screen" behavior of
# `less`. One can specifically activate some flags for particular
# commands: for example, setting `pager.blame` to `less -S` enables
# line truncation only for `git blame`.
# +
# Likewise, when the `LV` environment variable is unset, Git sets it
# to `-c`. You can override this setting by exporting `LV` with
# another value or setting `core.pager` to `lv +c`.
precomposeUnicode=1
# 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 & 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.
# preferSymlinkRefs=
# Instead of the default "symref" format for HEAD
# & other symbolic reference files, use symbolic links.
# This is sometimes needed to work with old scripts that
# expect HEAD to be a symbolic link.
# preloadIndex=
# Enable parallel index preload for operations like 'git diff'
# +
# This can speed up operations like 'git diff' and 'git status' especially
# on filesystems like NFS that have weak caching semantics and thus
# relatively high IO latencies. When enabled, Git will do the
# index comparison to the filesystem data in parallel, allowing
# overlapping IO's. DEFAULT=true.
# protectHFS=
# If set to true, do not allow checkout of paths that would
# be considered equivalent to `.git` on an HFS+ filesystem.
# DEFAULT=`true` on Mac OS, & `false` elsewhere.
# 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.
# DEFAULT=`true` on Windows, & `false` elsewhere.
# quotePath=
# Commands that output paths (e.g. 'ls-files', 'diff'), will
# quote "unusual" characters in the pathname by enclosing the
# pathname in double-quotes & escaping those characters with
# backslashes in the same way C escapes control characters (e.g.
# `\t` for TAB, `\n` for LF, `\\` for backslash) or bytes with
# values larger than 0x80 (e.g. octal `\302\265` for "micro" in
# UTF-8). If this variable is set to false, bytes higher than
# 0x80 are not considered "unusual" any more. Double-quotes,
# backslash & control characters are always escaped regardless
# of the setting of this variable. A simple space character is
# not considered "unusual". Many commands can output pathnames
# completely verbatim using the `-z` option. The default value
# is true.
# repositoryFormatVersion=
# Internal variable identifying the repository format & layout
# version.
# restrictinheritedhandles=
# Windows-only: override whether spawned processes inherit only standard
# file handles (`stdin`, `stdout` & `stderr`) or all handles. Can be
# `auto`, `true` or `false`. DEFAULT=`auto`, which means `true` on
# Windows 7 and later, & `false` on older Windows versions.
safecrlf=1
# If true, makes Git check if converting `CRLF` is reversible when
# end-of-line conversion is active. Git will verify if a command
# modifies a file in the work tree either directly or indirectly.
# For example, committing a file followed by checking out the
# same file should yield the original file in the work tree. If
# this isn't the case for the current setting of
# `core.autocrlf`, Git will reject the file. The variable can
# be set to "warn", in which case Git will only warn about an
# irreversible conversion but continue the operation.
# +
# CRLF conversion bears a slight chance of corrupting data.
# When it is enabled, Git will convert CRLF to LF during commit and LF to
# CRLF during checkout. A file that contains a mixture of LF and
# CRLF before the commit can't be recreated by Git. For text
# files this is the right thing to do: it corrects line endings
# such that we have only LF line endings in the repository.
# But for binary files that are accidentally classified as text the
# conversion can corrupt data.
# +
# If you recognize such corruption early you can easily fix it by
# setting the conversion type explicitly in .gitattributes. Right
# after committing you still have the original file in your work
# tree and this file isn't yet corrupted. You can explicitly tell
# Git that this file is binary and Git will handle the file
# appropriately.
# +
# Unfortunately, the desired effect of cleaning up text files with
# mixed line endings and the undesired effect of corrupting binary
# files can't be distinguished. In both cases CRLFs are removed
# in an irreversible way. For text files this is the right thing
# to do because CRLFs are line endings, while for binary files
# converting CRLFs corrupts data.
# +
# Note, this safety check does not mean that a checkout will generate a
# file identical to the original file for a different setting of
# `core.eol` and `core.autocrlf`, but only for the current one. For
# example, a text file with `LF` would be accepted with `core.eol=lf`
# and could later be checked out with `core.eol=crlf`, in which case the
# resulting file would contain `CRLF`, although the original file
# contained `LF`. However, in both work trees the line endings would be
# consistent, that is either all `LF` or all `CRLF`, but never mixed. A
# file with mixed line endings would be reported by the `core.safecrlf`
# mechanism.
# sharedRepository=
# When 'group' (or 'true'), the repository is made shareable between
# several users in a group (making sure all the files & objects are
# group-writable). When 'all' (or 'world' or 'everybody'), the
# repository will be readable by all users, additionally to being
# group-shareable. When 'umask' (or 'false'), Git will use permissions
# reported by umask(2). When '0xxx', where '0xxx' is an octal number,
# files in the repository will have this mode value. '0xxx' will override
# user's umask value (whereas the other options will only override
# requested parts of the user's umask value). Examples: '0660' will make
# the repo read/write-able for the owner & group, but inaccessible to
# others (equivalent to 'group' unless umask is e.g. '0022'). '0640' is a
# repository that is group-readable but not group-writable.
# See linkgit:git-init[1]. False by default.
sparseCheckout=1
# Enable "sparse checkout" feature. See section "Sparse checkout" in
# linkgit:git-read-tree[1] for more information.
# sparseCheckoutCone=1
# splitIndex=
# If true, the split-index feature of the index will be used.
# See linkgit:git-update-index[1]. False by default.
# sshCommand=
# If this variable is set, `git fetch` & `git push` will
# use the specified command instead of `ssh` when they need to
# connect to a remote system. The command is in the same form as
# the `GIT_SSH_COMMAND` environment variable & is overridden
# when the environment variable is set.
# symlinks=
# If false, symbolic links are checked out as small plain files that
# contain the link text. linkgit:git-update-index[1] &
# linkgit:git-add[1] will not change the recorded type to regular
# file. Useful on filesystems like FAT that do not support
# symbolic links.
# +
# DEFAULT=true, except linkgit:git-clone[1] or linkgit:git-init[1]
# will probe and set core.symlinks false if appropriate when the repository
# is created.
# trustctime=
# If false, the ctime differences between the index & the
# working tree are ignored; useful when the inode change time
# is regularly modified by something outside Git (file system
# crawlers & some backup systems).
# See linkgit:git-update-index[1]. True by default.
# unsetenvvars=
# Windows-only: comma-separated list of environment variables'
# names that need to be unset before spawning any other process.
# DEFAULT=`PERL5LIB` to account for the fact that Git for
# Windows insists on using its own Perl interpreter.
# untrackedCache=
# Determines what to do about the untracked cache feature of the
# index. It will be kept, if this variable is unset or set to
# `keep`. It will automatically be added if set to `true`. And
# it will automatically be removed, if set to `false`. Before
# setting it to `true`, you should check that mtime is working
# properly on your system.
# See linkgit:git-update-index[1]. `keep` by default, unless
# `feature.manyFiles` is enabled which sets this setting to
# `true` by default.
# useReplaceRefs=
# If set to `false`, behave as if the `--no-replace-objects`
# option was given on the command line. See linkgit:git[1] &
# linkgit:git-replace[1] for more information.
# warnAmbiguousRefs=
# If true, Git will warn you if the ref name you passed it is ambiguous
# & might match multiple refs in the repository. True by default.
whitespace = tabwidth=4
# A comma separated list of common whitespace problems to
# notice. 'git diff' will use `color.diff.whitespace` to
# highlight them, & 'git apply --whitespace=error' will
# consider them as errors. You can prefix `-` to disable
# any of them (e.g. `-trailing-space`):
# +
# * `blank-at-eol` treats trailing whitespaces at the end of the line
# as an error (enabled by default).
# * `space-before-tab` treats a space character that appears immediately
# before a tab character in the initial indent part of the line as an
# error (enabled by default).
# * `indent-with-non-tab` treats a line that is indented with space
# characters instead of the equivalent tabs as an error (not enabled by
# default).
# * `tab-in-indent` treats a tab character in the initial indent part of
# the line as an error (not enabled by default).
# * `blank-at-eof` treats blank lines added at the end of file as an error
# (enabled by default).
# * `trailing-space` is a short-hand to cover both `blank-at-eol` and
# `blank-at-eof`.
# * `cr-at-eol` treats a carriage-return at the end of line as
# part of the line terminator, i.e. with it, `trailing-space`
# does not trigger if the character before such a carriage-return
# isn't a whitespace (not enabled by default).
# * `tabwidth=<n>` tells how many character positions a tab occupies; this
# is relevant for `indent-with-non-tab` and when Git fixes `tab-in-indent`
# errors. The default tab width is 8. Allowed values are 1 to 63.
# worktree=
# Set the path to the root of the working tree.
# If `GIT_COMMON_DIR` environment variable is set, core.worktree
# is ignored & not used for determining the root of working tree.
# This can be overridden by the `GIT_WORK_TREE` environment
# variable & the `--work-tree` command-line option.
# The value can be an absolute path or relative to the path to
# the .git directory, which is either specified by --git-dir
# or GIT_DIR, or automatically discovered.
# If --git-dir or GIT_DIR is specified but none of
# --work-tree, GIT_WORK_TREE & core.worktree is specified,
# the current working directory is regarded as the top level
# of your working tree.
# +
# NOTE: this variable is honored even when set in a configuration
# file in a ".git" subdirectory of a directory and its value differs
# from the latter directory (e.g. "/path/to/.git/config" has
# core.worktree set to "/different/path"), which is most likely a
# misconfiguration. Running Git commands in the "/path/to" directory will
# still use "/different/path" as the root of the work tree and can cause
# confusion unless you know what you are doing (e.g. you are creating a
# read-only snapshot of the same index to a location different from the
# repository's usual working tree).
[credential]
helper = manager
# Specify an external helper to be called when a username or
# password credential is needed; the helper may consult external
# storage to avoid prompting the user for the credentials. Note
# that multiple helpers may be defined. See linkgit:gitcredentials[7]
# for details.
# useHttpPath=
# When acquiring credentials, consider the "path" component of an http
# or https URL to be important. DEFAULT=false. See
# linkgit:gitcredentials[7] for more information.
# username=
# If no username is set for a network authentication, use this username
# by default. See credential.<context>.* below, &
# linkgit:gitcredentials[7].
#[credential "helper"]
#THIS ENTRY HAS DISAPPEARED FROM DOCS
# selected = manager
#[credential "<url>"]
# *=
# Any of the credential.* options above can be applied selectively to
# some credentials. For example "credential.https://example.com.username"
# would set the default username only for https connections to
# example.com. See linkgit:gitcredentials[7] for details on how URLs are
# matched.
[credentialCache]
# ignoreSIGHUP=
# Tell git-credential-cache--daemon to ignore SIGHUP, instead of quitting.
[cvsexportcommit]
# cvsdir=
# The default location of the CVS checkout to use for the export.
[diff]
# algorithm=
# Choose a diff algorithm. The variants are as follows:
# +
# --
# `default`, `myers`;;
# The basic greedy diff algorithm. Currently, this is the default.
# `minimal`;;
# Spend extra time to make sure the smallest possible diff is
# produced.
# `patience`;;
# Use "patience diff" algorithm when generating patches.
# `histogram`;;
# This algorithm extends the patience algorithm to "support
# low-occurrence common elements".
# --
# autoRefreshIndex=
# When using 'git diff' to compare with work tree
# files, do not consider stat-only change as changed.
# Instead, silently run `git update-index --refresh` to
# update the cached stat information for paths whose
# contents in the work tree match the contents in the
# index. DEFAULT=true. NOTE: this
# affects only 'git diff' Porcelain, & not lower level
# 'diff' commands such as 'git diff-files'.
# colorMoved=
# If set to either a valid `<mode>` or a true value, moved lines
# in a diff are colored differently, for details of valid modes
# see '--color-moved' in linkgit:git-diff[1]. If simply set to
# true the default color mode will be used. When set to false,
# moved lines are not colored.
# colorMovedWS=
# When moved lines are colored using e.g. the `diff.colorMoved` setting,
# this option controls the `<mode>` how spaces are treated
# for details of valid modes see '--color-moved-ws' in linkgit:git-diff[1].
# context=
# Generate diffs with <n> lines of context instead of the default
# of 3. This value is overridden by the -U option.
# dirstat=
# A comma separated list of `--dirstat` parameters specifying the
# default behavior of the `--dirstat` option to linkgit:git-diff[1]
# & friends. The defaults can be overridden on the command line
# (using `--dirstat=<param1,param2,...>`). The fallback defaults
# (when not changed by `diff.dirstat`) are `changes,noncumulative,3`.
# The following parameters are available:
# +
# --
# `changes`;;
# Compute the dirstat numbers by counting the lines that have been
# removed from the source, or added to the destination. This ignores
# the amount of pure code movements within a file. In other words,
# rearranging lines in a file isn't counted as much as other changes.
# This is the default behavior when no parameter is given.
# `lines`;;
# Compute the dirstat numbers by doing the regular line-based diff
# analysis, and summing the removed/added line counts. (For binary
# files, count 64-byte chunks instead, since binary files have no
# natural concept of lines). This is a more expensive `--dirstat`
# behavior than the `changes` behavior, but it does count rearranged
# lines within a file as much as other changes. The resulting output
# is consistent with what you get from the other `--*stat` options.
# `files`;;
# Compute the dirstat numbers by counting the number of files changed.
# Each changed file counts equally in the dirstat analysis. This is
# the computationally cheapest `--dirstat` behavior, since it does
# not have to look at the file contents at all.
# `cumulative`;;
# Count changes in a child directory for the parent directory as well.
# NOTE: when using `cumulative`, the sum of the percentages
# reported may exceed 100%. The default (non-cumulative) behavior can
# be specified with the `noncumulative` parameter.
# <limit>;;
# An integer parameter specifies a cut-off percent (3% by default).
# Directories contributing less than this percentage of the changes
# are not shown in the output.
# --
# +
# Example: The following will count changed files, while ignoring
# directories with less than 10% of the total amount of changed files,
# and accumulating child directory counts in the parent directories:
# `files,10,cumulative`.
# external=
# If this config variable is set, diff generation is not
# performed using the internal diff machinery, but using the
# given command. Can be overridden with the `GIT_EXTERNAL_DIFF'
# environment variable. The command is called with parameters
# as described under "git Diffs" in linkgit:git[1]. Note: if
# you want to use an external diff program only on a subset of
# your files, you might want to use linkgit:gitattributes[5] instead.
# guitool=
# The default diff tool to use when `--gui` is specified.
#
# Controls which diff tool is used by linkgit:git-difftool[1] when
# the -g/--gui flag is specified. This variable overrides the value
# configured in `merge.guitool`. The list below shows the valid
# built-in values. Any other value is treated as a custom diff tool
# & requires that a corresponding difftool.<guitool>.cmd variable
# is defined.
# ignoreSubmodules=
# Sets the default value of --ignore-submodules. NOTE: this
# affects only 'git diff' Porcelain, & not lower level 'diff'
# commands such as 'git diff-files'. 'git checkout'
# & 'git switch' also honor
# this setting when reporting uncommitted changes. Setting it to
# 'all' disables the submodule summary normally shown by 'git commit'
# & 'git status' when `status.submoduleSummary` is set unless it is
# overridden by using the --ignore-submodules command-line option.
# The 'git submodule' commands are not affected by this setting.
# indentHeuristic=
# Set this option to `false` to disable the default heuristics
# that shift diff hunk boundaries to make patches easier to read.
# interHunkContext=
# Show the context between diff hunks, up to the specified number
# of lines, thereby fusing the hunks that are close to each other.
# This value serves as the default for the `--inter-hunk-context`
# command line option.
# noprefix=
# If set, 'git diff' does not show any source or destination prefix.
# orderFile=
# File indicating how to order files within a diff.
# See the '-O' option to linkgit:git-diff[1] for details.
# If `diff.orderFile` is a relative pathname, it is treated as
# relative to the top of the working tree.
# relative=
# renameLimit=
# The number of files to consider when performing the copy/rename
# detection; equivalent to the 'git diff' option `-l`. This setting
# has no effect if rename detection is turned off.
# renames=
# Whether & how Git detects renames. If set to "false",
# rename detection is disabled. If set to "true", basic rename
# detection is enabled. If set to "copies" or "copy", Git will
# detect copies, as well. DEFAULT=true. NOTE: this
# affects only 'git diff' Porcelain like linkgit:git-diff[1] &
# linkgit:git-log[1], & not lower level commands such as
# linkgit:git-diff-files[1].
# statGraphWidth=
# Limit the width of the graph part in --stat output. If set, applies
# to all commands generating --stat output except format-patch.
# submodule=
# Specify the format in which differences in submodules are
# shown. The "short" format just shows the names of the commits
# at the beginning & end of the range. The "log" format lists
# the commits in the range like linkgit:git-submodule[1] `summary`
# does. The "diff" format shows an inline diff of the changed
# contents of the submodule. DEFAULT="short".
# suppressBlankEmpty=
# A boolean to inhibit the standard behavior of printing a space
# before each empty output line. DEFAULT=false.
tool=bc4
# The default diff tool to use.
#
# Controls which diff tool is used by linkgit:git-difftool[1].
# This variable overrides the value configured in `merge.tool`.
# The list below shows the valid built-in values.
# Any other value is treated as a custom diff tool & requires
# that a corresponding difftool.<tool>.cmd variable is defined.
# wordRegex=
# A POSIX Extended Regular Expression used to determine what is a "word"
# when performing word-by-word difference calculations. Character
# sequences that match the regular expression are "words", all other
# characters are *ignorable* whitespace.
# wsErrorHighlight=
# Highlight whitespace errors in the `context`, `old` or `new`
# lines of the diff. Multiple values are separated by comma,
# `none` resets previous values, `default` reset the list to
# `new` & `all` is a shorthand for `old,new,context`. The
# whitespace errors are colored with `color.diff.whitespace`.
# The command line option `--ws-error-highlight=<kind>`
# overrides this setting.
#[diff "<driver>"]
# binary=
# Set this option to true to make the diff driver treat files as
# binary. See linkgit:gitattributes[5] for details.
# cachetextconv=
# Set this option to true to make the diff driver cache the text
# conversion outputs. See linkgit:gitattributes[5] for details.
# command=
# The custom diff driver command. See linkgit:gitattributes[5]
# for details.
# textconv=
# The command that the diff driver should call to generate the
# text-converted version of a file. The result of the
# conversion is used to generate a human-readable diff. See
# linkgit:gitattributes[5] for details.
# wordRegex=
# The regular expression that the diff driver should use to
# split words in a line. See linkgit:gitattributes[5] for
# details.
# xfuncname=
# The regular expression that the diff driver should use to
# recognize the hunk header. A built-in pattern may also be used.
# See linkgit:gitattributes[5] for details.
[difftool]
# prompt=
# Prompt before each invocation of the diff tool.
# trustExitCode=
# Exit difftool if the invoked diff tool returns a non-zero exit status.
# +
# See the `--trust-exit-code` option above for more details.
#[difftool "<tool>"]
# cmd=
# Specify the command to invoke the specified diff tool.
# The specified command is evaluated in shell with the following
# variables available: 'LOCAL' is set to the name of the temporary
# file containing the contents of the diff pre-image & 'REMOTE'
# is set to the name of the temporary file containing the contents
# of the diff post-image.
#
# Specify the command to invoke the specified diff tool.
# +
# See the `--tool=<tool>` option above for more details.
# path=
# Override the path for the given tool. This is useful in case
# your tool isn't in the PATH.
[difftool "bc4"] # [difftool "<tool>"]
# Override the path for the given tool. Useful in case your tool isn't in the PATH.
# Specify the command to invoke the specified diff tool. The specified command is evaluated in shell with the following variables available: 'LOCAL' is set=the name of the temporary file containing the contents of the diff pre-image & 'REMOTE' is set=the name of the temporary file containing the contents of the diff post-image.
#path
cmd = C:/tools/scoop/apps/beyondcompare/current/BComp.exe \"$LOCAL\" \"$REMOTE\"
[extensions]
# objectFormat=
[fastimport]
# unpackLimit=
# See linkgit:git-config[1]
#
# If the number of objects imported by linkgit:git-fast-import[1]
# is below this limit, then the objects will be unpacked into
# loose object files. However if the number of imported objects
# equals or exceeds this limit then the pack will be stored as a
# pack. Storing the pack from a fast-import can make the import
# operation complete faster, especially on slow filesystems. If
# not set, the value of `transfer.unpackLimit` is used instead.
[feature]
# *=
# The config settings that start with `feature.` modify the defaults of
# a group of other config settings. These groups are created by the Git
# developer community as recommended defaults & are subject to change.
# In particular, new config options may be added with different defaults.
# experimental=
# Enable config options that are new to Git, & are being considered for
# future defaults. Config settings included here may be added or removed
# with each release, including minor version updates. These settings may
# have unintended interactions since they are so new. Please enable this
# setting if you are interested in providing feedback on experimental
# features. The new default values are:
# +
# * `pack.useSparse=true` uses a new algorithm when constructing a pack-file
# which can improve `git push` performance in repos with many files.
# +
# * `fetch.negotiationAlgorithm=skipping` may improve fetch negotiation times by
# skipping more commits at a time, reducing the number of round trips.
# +
# * `fetch.writeCommitGraph=true` writes a commit-graph after every `git fetch`
# command that downloads a pack-file from a remote. Using the `--split` option,
# most executions will create a very small commit-graph file on top of the
# existing commit-graph file(s). Occasionally, these files will merge and the
# write may take longer. Having an updated commit-graph file helps performance
# of many Git commands, including `git merge-base`, `git push -f`, and
# `git log --graph`.
# manyFiles=
# Enable config options that optimize for repos with many files in the
# working directory. With many files, commands such as `git status` &
# `git checkout` may be slow & these new defaults improve performance:
# +
# * `index.version=4` enables path-prefix compression in the index.
# +
# * `core.untrackedCache=true` enables the untracked cache. This setting assumes
# that mtime is working on your machine.
[fetch]
# fsckObjects=
# If it is set to true, git-fetch-pack will check all fetched
# objects. See `transfer.fsckObjects` for what's
# checked. DEFAULT=false. If not set, the value of
# `transfer.fsckObjects` is used instead.
# negotiationAlgorithm=
# Control how information about the commits in the local repository is
# sent when negotiating the contents of the packfile to be sent by the
# server. Set to "skipping" to use an algorithm that skips commits in an
# effort to converge faster, but may result in a larger-than-necessary
# packfile; DEFAULT="default" which instructs Git to use the default algorithm
# that never skips commits (unless the server has acknowledged it or one
# of its descendants). If `feature.experimental` is enabled, then this
# setting DEFAULT="skipping".
# Unknown values will cause 'git fetch' to error out.
# +
# See also the `--negotiation-tip` option for linkgit:git-fetch[1].
# output=
# Control how ref update status is printed. Valid values are
# `full` & `compact`. Default value is `full`. See section
# OUTPUT in linkgit:git-fetch[1] for detail.
# parallel=
# Specifies the maximal number of fetch operations to be run in parallel
# at a time (submodules, or remotes when the `--multiple` option of
# linkgit:git-fetch[1] is in effect).
# +
# A value of 0 will give some reasonable default. If unset, it DEFAULT=1.
# +
# For submodules, this setting can be overridden using the `submodule.fetchJobs`
# config setting.
# prune=
# If true, fetch will automatically behave as if the `--prune`
# option was given on the command line. See also `remote.<name>.prune`
# & the PRUNING section of linkgit:git-fetch[1].
# pruneTags=
# If true, fetch will automatically behave as if the
# `refs/tags/*:refs/tags/*` refspec was provided when pruning,
# if not set already. This allows for setting both this option
# & `fetch.prune` to maintain a 1=1 mapping to upstream
# refs. See also `remote.<name>.pruneTags` & the PRUNING
# section of linkgit:git-fetch[1].
recurseSubmodules=1
# This option can be either set to a boolean value or to 'on-demand'.
# Setting it to a boolean changes the behavior of fetch & pull to
# unconditionally recurse into submodules when set to true or to not
# recurse at all when set to false. When set to 'on-demand' (the default
# value), fetch & pull will only recurse into a populated submodule
# when its superproject retrieves a commit that updates the submodule's
# reference.
# showForcedUpdates=
# Set to false to enable `--no-show-forced-updates` in
# linkgit:git-fetch[1] & linkgit:git-pull[1] commands.
# DEFAULT=true.
# unpackLimit=
# If the number of objects fetched over the Git native
# transfer is below this
# limit, then the objects will be unpacked into loose object
# files. However if the number of received objects equals or
# exceeds this limit then the received pack will be stored as
# a pack, after adding any missing delta bases. Storing the
# pack from a push can make the push operation complete faster,
# especially on slow filesystems. If not set, the value of
# `transfer.unpackLimit` is used instead.
# writeCommitGraph=
# Set to true to write a commit-graph after every `git fetch` command
# that downloads a pack-file from a remote. Using the `--split` option,
# most executions will create a very small commit-graph file on top of
# the existing commit-graph file(s). Occasionally, these files will
# merge & the write may take longer. Having an updated commit-graph
# file helps performance of many Git commands, including `git merge-base`,
# `git push -f`, & `git log --graph`. DEFAULT=false, unless
# `feature.experimental` is true.
[fetch "fsck"]
# <msg-id>=
# Acts like `fsck.<msg-id>`, but is used by
# linkgit:git-fetch-pack[1] instead of linkgit:git-fsck[1]. See
# the `fsck.<msg-id>` documentation for details.
# skipList=
# Acts like `fsck.skipList`, but is used by
# linkgit:git-fetch-pack[1] instead of linkgit:git-fsck[1]. See
# the `fsck.skipList` documentation for details.
#[filter "<driver>"]
# clean=
# The command which is used to convert the content of a worktree
# file to a blob upon checkin. See linkgit:gitattributes[5] for
# details.
# smudge=
# The command which is used to convert the content of a blob
# object to a worktree file upon checkout. See
# linkgit:gitattributes[5] for details.
[filter "lfs"] # [filter "<driver>"]
clean = git-lfs clean -- %f # The command which is used to convert the content of a worktree file to a blob upon checkin. See `gitattributes` for details.
process = git-lfs filter-process
required = 1
smudge = git-lfs smudge -- %f # The command which is used to convert the content of a blob object to a worktree file upon checkout. See `gitattributes` for details.
[format]
# attach=
# Enable multipart/mixed attachments as the default for
# 'format-patch'. The value can also be a double quoted string
# which will enable attachments as the default & set the
# value as the boundary. See the --attach option in
# linkgit:git-format-patch[1].
# coverFromDescription=
# The default mode for format-patch to determine which parts of
# the cover letter will be populated using the branch's
# description. See the `--cover-from-description` option in
# linkgit:git-format-patch[1].
# coverLetter=
# A boolean that controls whether to generate a cover-letter when
# format-patch is invoked, but in addition can be set to "auto", to
# generate a cover-letter only when there's more than one patch.
# DEFAULT=false.
# encodeEmailHeaders=
# from=
# Provides the default value for the `--from` option to format-patch.
# Accepts a boolean value, or a name & email address. If false,
# format-patch DEFAULT=`--no-from`, using commit authors directly in
# the "From:" field of patch mails. If true, format-patch defaults to
# `--from`, using your committer identity in the "From:" field of patch
# mails & including a "From:" field in the body of the patch mail if
# different. If set to a non-boolean value, format-patch uses that
# value instead of your committer identity. DEFAULT=false.
# headers=
# Additional email headers to include in a patch to be submitted
# by mail. See linkgit:git-format-patch[1].
# notes=
# Provides the default value for the `--notes` option to
# format-patch. Accepts a boolean value, or a ref which specifies
# where to get notes. If false, format-patch defaults to
# `--no-notes`. If true, format-patch DEFAULT=`--notes`. If
# set to a non-boolean value, format-patch defaults to
# `--notes=<ref>`, where `ref` is the non-boolean value. Defaults
# to false.
# +
# If one wishes to use the ref `ref/notes/true`, please use that literal
# instead.
# +
# This configuration can be specified multiple times in order to allow
# multiple notes refs to be included.
# numbered=
# A boolean which can enable or disable sequence numbers in patch
# subjects. DEFAULT="auto" which enables it only if there
# is more than one patch. It can be enabled or disabled for all
# messages by setting it to "true" or "false". See --numbered
# option in linkgit:git-format-patch[1].
# outputDirectory=
# Set a custom directory to store the resulting files instead of the
# current working directory. All directory components will be created.
# pretty=
# The default pretty format for log/show/whatchanged command,
# See linkgit:git-log[1], linkgit:git-show[1],
# linkgit:git-whatchanged[1].
#
# Default for the `--format` option. (See 'Pretty Formats' above.)
# DEFAULT=`medium`.
# signOff=
# A boolean value which lets you enable the `-s/--signoff` option of
# format-patch by default. *Note:* Adding the Signed-off-by: line to a
# patch should be a conscious act & means that you certify you have
# the rights to submit this work under the same open source license.
# Please see the 'SubmittingPatches' document for further discussion.
# signature=
# The default for format-patch is to output a signature containing
# the Git version number. Use this variable to change that default.
# Set this variable to the empty string ("") to suppress
# signature generation.
# signatureFile=
# Works just like format.signature except the contents of the
# file specified by this variable will be used as the signature.
# subjectPrefix=
# The default for format-patch is to output files with the '[PATCH]'
# subject prefix. Use this variable to change that prefix.
# suffix=
# The default for format-patch is to output files with the suffix
# `.patch`. Use this variable to change that suffix (make sure to
# include the dot if you want it).
# thread=
# The default threading style for 'git format-patch'. Can be
# a boolean value, or `shallow` or `deep`. `shallow` threading
# makes every mail a reply to the head of the series,
# where the head is chosen from the cover letter, the
# `--in-reply-to`, & the 1st patch mail, in this order.
# `deep` threading makes every mail a reply to the previous one.
# A true boolean value is the same as `shallow`, & a false
# value disables threading.
# to=
# format.cc::
# Additional recipients to include in a patch to be submitted
# by mail. See the --to and --cc options in
# linkgit:git-format-patch[1].
# useAutoBase=
# A boolean value which lets you enable the `--base=auto` option of
# format-patch by default.
[fsck]
# <msg-id>=
# During fsck git may find issues with legacy data which
# wouldn't be generated by current versions of git, & which
# wouldn't be sent over the wire if `transfer.fsckObjects` was
# set. This feature is intended to support working with legacy
# repositories containing such data.
# +
# Setting `fsck.<msg-id>` will be picked up by linkgit:git-fsck[1], but
# to accept pushes of such data set `receive.fsck.<msg-id>` instead, or
# to clone or fetch it set `fetch.fsck.<msg-id>`.
# +
# The rest of the documentation discusses `fsck.*` for brevity, but the
# same applies for the corresponding `receive.fsck.*` and
# `fetch.<msg-id>.*`. variables.
# +
# Unlike variables like `color.ui` and `core.editor` the
# `receive.fsck.<msg-id>` and `fetch.fsck.<msg-id>` variables will not
# fall back on the `fsck.<msg-id>` configuration if they aren't set. To
# uniformly configure the same fsck settings in different circumstances
# all three of them they must all set to the same values.
# +
# When `fsck.<msg-id>` is set, errors can be switched to warnings and
# vice versa by configuring the `fsck.<msg-id>` setting where the
# `<msg-id>` is the fsck message ID and the value is one of `error`,
# `warn` or `ignore`. For convenience, fsck prefixes the error/warning
# with the message ID, e.g. "missingEmail: invalid author/committer
# line - missing email" means that setting `fsck.missingEmail = ignore`
# will hide that issue.
# +
# In general, it is better to enumerate existing objects with problems
# with `fsck.skipList`, instead of listing the kind of breakages these
# problematic objects share to be ignored, as doing the latter will
# allow new instances of the same breakages go unnoticed.
# +
# Setting an unknown `fsck.<msg-id>` value will cause fsck to die, but
# doing the same for `receive.fsck.<msg-id>` and `fetch.fsck.<msg-id>`
# will only cause git to warn.
# skipList=
# The path to a list of object names (i.e. one unabbreviated SHA-1 per
# line) that are known to be broken in a non-fatal way & should
# be ignored. On versions of Git 2.20 & later comments ('#'), empty
# lines, and any leading & trailing whitespace is ignored. Everything
# but a SHA-1 per line will error out on older versions.
# +
# This feature is useful when an established project should be accepted
# despite early commits containing errors that can be safely ignored
# such as invalid committer email addresses. Note: corrupt objects
# can't be skipped with this setting.
# +
# Like `fsck.<msg-id>` this variable has corresponding
# `receive.fsck.skipList` and `fetch.fsck.skipList` variants.
# +
# Unlike variables like `color.ui` and `core.editor` the
# `receive.fsck.skipList` and `fetch.fsck.skipList` variables will not
# fall back on the `fsck.skipList` configuration if they aren't set. To
# uniformly configure the same fsck settings in different circumstances
# all three of them they must all set to the same values.
# +
# Older versions of Git (before 2.20) documented that the object names
# list should be sorted. This was never a requirement, the object names
# could appear in any order, but when reading the list we tracked whether
# the list was sorted for the purposes of an internal binary search
# implementation, which could save itself some work with an already sorted
# list. Unless you had a humongous list there was no reason to go out of
# your way to pre-sort the list. After Git version 2.20 a hash implementation
# is used instead, so there's now no reason to pre-sort the list.
[gc]
# aggressiveDepth=
# The depth parameter used in the delta compression
# algorithm used by 'git gc --aggressive'. This defaults
# to 50, which is the default for the `--depth` option when
# `--aggressive` isn't in use.
# +
# See the documentation for the `--depth` option in
# linkgit:git-repack[1] for more details.
# aggressiveWindow=
# The window size parameter used in the delta compression
# algorithm used by 'git gc --aggressive'. This defaults
# to 250, which is a much more aggressive window size than
# the default `--window` of 10.
# +
# See the documentation for the `--window` option in
# linkgit:git-repack[1] for more details.
# auto=
# When there are approximately more than this many loose
# objects in the repository, `git gc --auto` will pack them.
# Some Porcelain commands use this command to perform a
# light-weight garbage collection from time to time. The
# default value is 6700.
# +
# Setting this to 0 disables not only automatic packing based on the
# number of loose objects, but any other heuristic `git gc --auto` will
# otherwise use to determine if there's work to do, such as
# `gc.autoPackLimit`.
autoDetach=0
# Make `git gc --auto` return immediately & run in background
# if the system supports it. DEFAULT=true.
# autoPackLimit=
# When there are more than this many packs that are not
# marked with `*.keep` file in the repository, `git gc
# --auto` consolidates them into one larger pack. The
# default value is 50. Setting this to 0 disables it.
# Setting `gc.auto` to 0 will also disable this.
# +
# See the `gc.bigPackThreshold` configuration variable below. When in
# use, it'll affect how the auto pack limit works.
# bigPackThreshold=
# If non-zero, all packs larger than this limit are kept when
# `git gc` is run. This is very similar to `--keep-base-pack`
# except that all packs that meet the threshold are kept, not
# just the base pack. DEFAULT=zero. Common unit suffixes of
# 'k', 'm', or 'g' are supported.
# +
# NOTE: if the number of kept packs is more than gc.autoPackLimit,
# this configuration variable is ignored, all packs except the base pack
# will be repacked. After this the number of packs should go below
# gc.autoPackLimit and gc.bigPackThreshold should be respected again.
# +
# If the amount of memory estimated for `git repack` to run smoothly is
# not available and `gc.bigPackThreshold` isn't set, the largest pack
# will also be excluded (this is the equivalent of running `git gc` with
# `--keep-base-pack`).
# logExpiry=
# If the file gc.log exists, then `git gc --auto` will print
# its content & exit with status zero instead of running
# unless that file is more than 'gc.logExpiry' old. Default is
# "1.day". See `gc.pruneExpire` for more ways to specify its
# value.
# packRefs=
# Running `git pack-refs` in a repository renders it
# unclonable by Git versions prior to 1.5.1.2 over dumb
# transports such as HTTP. This variable determines whether
# 'git gc' runs `git pack-refs`. This can be set to `notbare`
# to enable it within all non-bare repos or it can be set to a
# boolean value. DEFAULT=`true`.
# pruneExpire=
# When 'git gc' is run, it will call 'prune --expire 2.weeks.ago'.
# Override the grace period with this config variable. The value
# "now" may be used to disable this grace period & always prune
# unreachable objects immediately, or "never" may be used to
# suppress pruning. This feature helps prevent corruption when
# 'git gc' runs concurrently with another process writing to the
# repository; see the "NOTES" section of linkgit:git-gc[1].
# reflogExpire=
# gc.<pattern>.reflogExpire::
# 'git reflog expire' removes reflog entries older than
# this time; DEFAULT=90 days. The value "now" expires all
# entries immediately, and "never" suppresses expiration
# altogether. With "<pattern>" (e.g.
# "refs/stash") in the middle the setting applies only to
# the refs that match the <pattern>.
# reflogExpireUnreachable=
# gc.<pattern>.reflogExpireUnreachable::
# 'git reflog expire' removes reflog entries older than
# this time and are not reachable from the current tip;
# DEFAULT=30 days. The value "now" expires all entries
# immediately, and "never" suppresses expiration altogether.
# With "<pattern>" (e.g. "refs/stash")
# in the middle, the setting applies only to the refs that
# match the <pattern>.
# +
# These types of entries are generally created as a result of using `git
# commit --amend` or `git rebase` and are the commits prior to the amend
# or rebase occurring. Since these changes are not part of the current
# project most users will want to expire them sooner, which is why the
# DEFAULT=more aggressive than `gc.reflogExpire`.
# rerereResolved=
# Records of conflicted merge you resolved earlier are
# kept for this many days when 'git rerere gc' is run.
# You can also use more human-readable "1.month.ago", etc.
# DEFAULT=60 days. See linkgit:git-rerere[1].
# rerereUnresolved=
# Records of conflicted merge you have not resolved are
# kept for this many days when 'git rerere gc' is run.
# You can also use more human-readable "1.month.ago", etc.
# DEFAULT=15 days. See linkgit:git-rerere[1].
# worktreePruneExpire=
# When 'git gc' is run, it calls
# 'git worktree prune --expire 3.months.ago'.
# This config variable can be used to set a different grace
# period. The value "now" may be used to disable the grace
# period & prune `$GIT_DIR/worktrees` immediately, or "never"
# may be used to suppress pruning.
# writeCommitGraph=
# If true, then gc will rewrite the commit-graph file when
# linkgit:git-gc[1] is run. When using `git gc --auto`
# the commit-graph will be updated if housekeeping is
# required. DEFAULT=true. See linkgit:git-commit-graph[1]
# for details.
[gitcvs]
# allBinary=
# This is used if `gitcvs.usecrlfattr` does not resolve
# the correct '-kb' mode to use. If true, all
# unresolved files are sent to the client in
# mode '-kb'. This causes the client to treat them
# as binary files, which suppresses any newline munging it
# otherwise might do. Alternatively, if it is set to "guess",
# then the contents of the file are examined to decide if
# it is binary, similar to `core.autocrlf`.
# commitMsgAnnotation=
# Append this string to each commit message. Set to empty string
# to disable this feature. DEFAULT="via git-CVS emulator".
# dbDriver=
# Used Perl DBI driver. You can specify any available driver
# for this here, but it might not work. git-cvsserver is tested
# with 'DBD::SQLite', reported to work with 'DBD::Pg', &
# reported *not* to work with 'DBD::mysql'. Experimental feature.
# May not contain double colons (`:`). Default: 'SQLite'.
# See linkgit:git-cvsserver[1].
#
# Used DBI driver. You can specify any available driver
# for this here, but it might not work. cvsserver is tested
# with 'DBD::SQLite', reported to work with
# 'DBD::Pg', & reported *not* to work with 'DBD::mysql'.
# Please regard this as an experimental feature. May not
# contain colons (`:`).
# Default: 'SQLite'
# dbName=
# Database name. The exact meaning depends on the
# selected database driver, for SQLite this is a filename.
# Supports variable substitution (see below). May
# not contain semicolons (`;`).
# Default: '%Ggitcvs.%m.sqlite'
#
# Database used by git-cvsserver to cache revision information
# derived from the Git repository. The exact meaning depends on the
# used database driver, for SQLite (which is the default driver) this
# is a filename. Supports variable substitution (see
# linkgit:git-cvsserver[1] for details). May not contain semicolons (`;`).
# Default: '%Ggitcvs.%m.sqlite'
# dbPass=
# Database password. Only useful if setting `dbDriver`, since
# SQLite has no concept of database passwords.
# dbTableNamePrefix=
# Database table name prefix. Prepended to the names of any
# database tables used, allowing a single database to be used
# for several repositories. Supports variable substitution (see
# linkgit:git-cvsserver[1] for details). Any non-alphabetic
# characters will be replaced with underscores.
#
# Database table name prefix. Supports variable substitution
# (see below). Any non-alphabetic characters will be replaced
# with underscores.
# dbuser=
# Database user. Only useful if setting `dbDriver`, since
# SQLite has no concept of database users. Supports variable
# substitution (see below).
# enabled=
# Whether the CVS server interface is enabled for this repository.
# See linkgit:git-cvsserver[1].
# logFile=
# Path to a log file where the CVS server interface well... logs
# various stuff. See linkgit:git-cvsserver[1].
# usecrlfattr=
# If true, the server will look up the end-of-line conversion
# attributes for files to determine the `-k` modes to use. If
# the attributes force Git to treat a file as text,
# the `-k` mode will be left blank so CVS clients will
# treat it as text. If they suppress text conversion, the file
# will be set with '-kb' mode, which suppresses any newline munging
# the client might otherwise do. If the attributes do not allow
# the file type to be determined, then `gitcvs.allBinary` is
# used. See linkgit:gitattributes[5].
[gitweb]
# category=
# gitweb.description::
# gitweb.owner::
# gitweb.url::
# See linkgit:gitweb[1] for description.
# owner=
# You can use the `gitweb.owner` repository configuration variable to set
# repository's owner. It is displayed in the project list & summary
# page.
# +
# If it's not set, filesystem directory's owner is used (via GECOS field,
# i.e. real name field from *getpwuid*(3)) if `$projects_list` is unset
# (gitweb scans `$projectroot` for repositories); if `$projects_list`
# points to file with list of repositories, then project owner defaults to
# value from this file for given repository.
# showSizes=
# gitweb.snapshot::
# See linkgit:gitweb.conf[5] for description.
[gpg]
# format=
# Specifies which key format to use when signing with `--gpg-sign`.
# DEFAULT="openpgp" & another possible value is "x509".
program=C:/tools/SmartGit/git/usr/bin/gpg.exe
# Use this custom program instead of "`gpg`" found on `$PATH` when
# making or verifying a PGP signature. The program must support the
# same command-line interface as GPG, namely, to verify a detached
# signature, "`gpg --verify $signature - <$file`" is run, & the
# program is expected to signal a good signature by exiting with
# code 0, & to generate an ASCII-armored detached signature, the
# standard input of "`gpg -bsau $key`" is fed with the contents to be
# signed, & the program is expected to send the result to its
# standard output.
# minTrustLevel=
#[gpg "<format>"]
# program=
# Use this to customize the program used for the signing format you
# chose. (see `gpg.program` & `gpg.format`) `gpg.program` can still
# be used as a legacy synonym for `gpg.openpgp.program`. The default
# value for `gpg.x509.program` is "gpgsm".
[grep]
# column=
# If set to true, enable the `--column` option by default.
# extendedRegexp=
# If set to true, enable `--extended-regexp` option by default. This
# option is ignored when the `grep.patternType` option is set to a value
# other than 'default'.
# fallbackToNoIndex=
# If set to true, fall back to git grep --no-index if git grep
# is executed outside of a git repository. DEFAULT=false.
# fullName=
# If set to true, enable `--full-name` option by default.
lineNumber=1
# If set to true, enable `-n` option by default.
patternType=perl
# Set the default matching behavior. Using a value of 'basic', 'extended',
# 'fixed', or 'perl' will enable the `--basic-regexp`, `--extended-regexp`,
# `--fixed-strings`, or `--perl-regexp` option accordingly, while the
# value 'default' will return to the default matching behavior.
# threads=
# Number of grep worker threads to use. If unset (or set to 0),
# 8 threads are used by default (for now).
#
# Number of grep worker threads to use.
# See `grep.threads` in linkgit:git-grep[1] for more information.
[gui]
# blamehistoryctx=
# Specifies the radius of history context in days to show in
# linkgit:gitk[1] for the selected commit, when the `Show History
# Context` menu item is invoked from 'git gui blame'. If this
# variable is set to zero, the whole history is shown.
# commitMsgWidth=
# Defines how wide the commit message window is in the
# linkgit:git-gui[1]. "75" is the default.
# copyBlameThreshold=
# Specifies the threshold to use in 'git gui blame' original location
# detection, measured in alphanumeric characters. See the
# linkgit:git-blame[1] manual for more information on copy detection.
# diffContext=
# Specifies how many context lines should be used in calls to diff
# made by the linkgit:git-gui[1]. DEFAULT="5".
# displayUntracked=
# Determines if linkgit:git-gui[1] shows untracked files
# in the file list. DEFAULT="true".
# encoding=
# Specifies the default encoding to use for displaying of
# file contents in linkgit:git-gui[1] & linkgit:gitk[1].
# It can be overridden by setting the 'encoding' attribute
# for relevant files (see linkgit:gitattributes[5]).
# If this option isn't set, the tools default to the
# locale encoding.
# fastCopyBlame=
# If true, 'git gui blame' uses `-C` instead of `-C -C` for original
# location detection. It makes blame significantly faster on huge
# repositories at the expense of less thorough copy detection.
# matchTrackingBranch=
# Determines if new branches created with linkgit:git-gui[1] should
# default to tracking remote branches with matching names or
# not. Default: "false".
# newBranchTemplate=
# Is used as suggested name when creating new branches using the
# linkgit:git-gui[1].
pruneDuringFetch=1
# "true" if linkgit:git-gui[1] should prune remote-tracking branches when
# performing a fetch. The default value is "false".
# spellingDictionary=
# Specifies the dictionary used for spell checking commit messages in
# the linkgit:git-gui[1]. When set to "none" spell checking is turned
# off.
# trustmtime=
# Determines if linkgit:git-gui[1] should trust the file modification
# timestamp or not. By default the timestamps are not trusted.
#[guitool "<name>"]
# argPrompt=
# Request a string argument from the user, & pass it to the tool
# through the `ARGS` environment variable. Since requesting an
# argument implies confirmation, the 'confirm' option has no effect
# if this is enabled. If the option is set to 'true', 'yes', or '1',
# the dialog uses a built-in generic prompt; otherwise the exact
# value of the variable is used.
# cmd=
# Specifies the shell command line to execute when the corresponding item
# of the linkgit:git-gui[1] `Tools` menu is invoked. This option is
# mandatory for every tool. The command is executed from the root of
# the working directory, & in the environment it receives the name of
# the tool as `GIT_GUITOOL`, the name of the currently selected file as
# 'FILENAME', & the name of the current branch as 'CUR_BRANCH' (if
# the head is detached, 'CUR_BRANCH' is empty).
# confirm=
# Show a confirmation dialog before actually running the tool.
# needsFile=
# Run the tool only if a diff is selected in the GUI. It guarantees
# that 'FILENAME' isn't empty.
# noConsole=
# Run the command silently, without creating a window to display its
# output.
# noRescan=
# Don't rescan the working directory for changes after the tool
# finishes execution.
# prompt=
# Specifies the general prompt string to display at the top of
# the dialog, before subsections for 'argPrompt' & 'revPrompt'.
# The default value includes the actual command.
# revPrompt=
# Request a single valid revision from the user, & set the
# `REVISION` environment variable. In other aspects this option
# is similar to 'argPrompt', & can be used together with it.
# revUnmerged=
# Show only unmerged branches in the 'revPrompt' subdialog.
# This is useful for tools similar to merge or rebase, but not
# for things like checkout or reset.
# title=
# Specifies the title to use for the prompt dialog. The default
# is the tool name.
[help]
# autoCorrect=
# Automatically correct & execute mistyped commands after
# waiting for the given number of deciseconds (0.1 sec). If more
# than one command can be deduced from the entered text, nothing
# will be executed. If the value of this option is negative,
# the corrected command will be executed immediately. If the
# value is 0 - the command will be just shown but not executed.
# This is the default.
browser=chrome
# Specify the browser that will be used to display help in the
# 'web' format. See linkgit:git-help[1].
format=web
# Override the default help format used by linkgit:git-help[1].
# Values 'man', 'info', 'web' & 'html' are supported. 'man' is
# the default. 'web' & 'html' are the same.
# htmlPath=
# Specify the path where the HTML documentation resides. File system paths
# & URLs are supported. HTML pages will be prefixed with this path when
# help is displayed in the 'web' format. This DEFAULT=the documentation
# path of your Git installation.
[http]
# cookieFile=
# The pathname of a file containing previously stored cookie lines,
# which should be used
# in the Git http session, if they match the server. The file format
# of the file to read cookies from should be plain HTTP headers or
# the Netscape/Mozilla cookie file format (see `curl(1)`).
# NOTE that the file specified with http.cookieFile is used only as
# input unless http.saveCookies is set.
# delegation=
# Control GSSAPI credential delegation. The delegation is disabled
# by default in libcurl since version 7.21.7. Set parameter to tell
# the server what it is allowed to delegate when it comes to user
# credentials. Used with GSS/kerberos. Possible values are:
# +
# --
# * `none` - Don't allow any delegation.
# * `policy` - Delegates if and only if the OK-AS-DELEGATE flag is set in the
# Kerberos service ticket, which is a matter of realm policy.
# * `always` - Unconditionally allow the server to delegate.
# --
# emptyAuth=
# Attempt authentication without seeking a username or password. This
# can be used to attempt GSS-Negotiate authentication without specifying
# a username in the URL, as libcurl normally requires a username for
# authentication.
# extraHeader=
# Pass an additional HTTP header when communicating with a server. If
# more than one such entry exists, all of them are added as extra
# headers. To allow overriding the settings inherited from the system
# config, an empty value will reset the extra headers to the empty list.
followRedirects=1
# Whether git should follow HTTP redirects. If set to `true`, git
# will transparently follow any redirect issued by a server it
# encounters. If set to `false`, git will treat all redirects as
# errors. If set to `initial`, git will follow redirects only for
# the initial request to a remote, but not for subsequent
# follow-up HTTP requests. Since git uses the redirected URL as
# the base for the follow-up requests, this is generally
# sufficient. DEFAULT=`initial`.
# getanyfile=
# This serves Git clients older than version 1.6.6 that are unable to use the
# upload pack service. When enabled, clients are able to read
# any file within the repository, including objects that are
# no longer reachable from a branch but are still present.
# It is enabled by default, but a repository can disable it
# by setting this configuration item to `false`.
maxRequests=9
# How many HTTP requests to launch in parallel. Can be overridden
# by the `GIT_HTTP_MAX_REQUESTS` environment variable. DEFAULT=5.
# minSessions=
# The number of curl sessions (counted across slots) to be kept across
# requests. They will not be ended with curl_easy_cleanup() until
# http_cleanup() is invoked. If USE_CURL_MULTI isn't defined, this
# value will be capped at 1. DEFAULT=1.
# noEPSV=
# A boolean which disables using of EPSV ftp command by curl.
# This can helpful with some "poor" ftp servers which don't
# support EPSV mode. Can be overridden by the `GIT_CURL_FTP_NO_EPSV`
# environment variable. DEFAULT=false (curl will use EPSV).
# pinnedpubkey=
# Public key of the https service. It may either be the filename of
# a PEM or DER encoded public key file or a string starting with
# 'sha256//' followed by the base64 encoded sha256 hash of the
# public key. See also libcurl 'CURLOPT_PINNEDPUBLICKEY'. git will
# exit with an error if this option is set but not supported by
# cURL.
# postBuffer=
# Maximum size in bytes of the buffer used by smart HTTP
# transports when POSTing data to the remote system.
# For requests larger than this buffer size, HTTP/1.1 &
# Transfer-Encoding: chunked is used to avoid creating a
# massive pack file locally. DEFAULT=1 MiB, which is
# sufficient for most requests.
# proxy=
# Override the HTTP proxy, normally configured using the 'http_proxy',
# 'https_proxy', & 'all_proxy' environment variables (see `curl(1)`). In
# addition to the syntax understood by curl, it is possible to specify a
# proxy string with a user name but no password, in which case git will
# attempt to acquire one in the same way it does for other credentials. See
# linkgit:gitcredentials[7] for more information. The syntax thus is
# '[protocol://][user[:password]@]proxyhost[:port]'. This can be overridden
# on a per-remote basis; see remote.<name>.proxy
# proxyAuthMethod=
# Set the method with which to authenticate against the HTTP proxy. This
# only takes effect if the configured proxy string contains a user name part
# (i.e. is of the form 'user@host' or 'user@host:port'). This can be
# overridden on a per-remote basis; see `remote.<name>.proxyAuthMethod`.
# Both can be overridden by the `GIT_HTTP_PROXY_AUTHMETHOD` environment
# variable. Possible values are:
# +
# --
# * `anyauth` - Automatically pick a suitable authentication method. It is
# assumed that the proxy answers an unauthenticated request with a 407
# status code and one or more Proxy-authenticate headers with supported
# authentication methods. This is the default.
# * `basic` - HTTP Basic authentication
# * `digest` - HTTP Digest authentication; this prevents the password from being
# transmitted to the proxy in clear text
# * `negotiate` - GSS-Negotiate authentication (compare the --negotiate option
# of `curl(1)`)
# * `ntlm` - NTLM authentication (compare the --ntlm option of `curl(1)`)
# --
# proxySSLCAInfo=
# proxySSLCert=
# proxySSLCertPasswordProtected=
# proxySSLKey=
# receivepack=
# This serves 'git send-pack' clients, allowing push. It is
# disabled by default for anonymous users, & enabled by
# default for users authenticated by the web server. It can be
# disabled by setting this item to `false`, or enabled for all
# users, including anonymous users, by setting it to `true`.
# saveCookies=
# If set, store cookies received during requests to the file specified by
# http.cookieFile. Has no effect if http.cookieFile is unset.
# schannelCheckRevoke=
# Used to enforce or disable certificate revocation checks in cURL
# when http.sslBackend is set to "schannel". DEFAULT=`true` if
# unset. Only necessary to disable this if Git consistently errors
# & the message is about checking the revocation status of a
# certificate. This option is ignored if cURL lacks support for
# setting the relevant SSL option at runtime.
# schannelUseSSLCAInfo=
# As of cURL v7.60.0, the Secure Channel backend can use the
# certificate bundle provided via `http.sslCAInfo`, but that would
# override the Windows Certificate Store. Since this isn't desirable
# by default, Git will tell cURL not to use that bundle by default
# when the `schannel` backend was configured via `http.sslBackend`,
# unless `http.schannelUseSSLCAInfo` overrides this behavior.
# sslBackend=
# Name of the SSL backend to use (e.g. "openssl" or "schannel").
# This option is ignored if cURL lacks support for choosing the SSL
# backend at runtime.
# sslCAInfo=
# File containing the certificates to verify the peer with when
# fetching or pushing over HTTPS. Can be overridden by the
# `GIT_SSL_CAINFO` environment variable.
# sslCAPath=
# Path containing files with the CA certificates to verify the peer
# with when fetching or pushing over HTTPS. Can be overridden
# by the `GIT_SSL_CAPATH` environment variable.
# sslCert=
# File containing the SSL certificate when fetching or pushing
# over HTTPS. Can be overridden by the `GIT_SSL_CERT` environment
# variable.
# sslCertPasswordProtected=
# Enable Git's password prompt for the SSL certificate. Otherwise
# OpenSSL will prompt the user, possibly many times, if the
# certificate or private key is encrypted. Can be overridden by the
# `GIT_SSL_CERT_PASSWORD_PROTECTED` environment variable.
# sslCipherList=
# A list of SSL ciphers to use when negotiating an SSL connection.
# The available ciphers depend on whether libcurl was built against
# NSS or OpenSSL and the particular configuration of the crypto
# library in use. Internally this sets the 'CURLOPT_SSL_CIPHER_LIST'
# option; see the libcurl documentation for more details on the format
# of this list.
# +
# Can be overridden by the `GIT_SSL_CIPHER_LIST` environment variable.
# To force git to use libcurl's default cipher list and ignore any
# explicit http.sslCipherList option, set `GIT_SSL_CIPHER_LIST` to the
# empty string.
# sslKey=
# File containing the SSL private key when fetching or pushing
# over HTTPS. Can be overridden by the `GIT_SSL_KEY` environment
# variable.
# sslTry=
# Attempt to use AUTH SSL/TLS & encrypted data transfers
# when connecting via regular FTP protocol. This might be needed
# if the FTP server requires it for security reasons or you wish
# to connect securely whenever remote FTP server supports it.
# DEFAULT=false since it might trigger certificate verification
# errors on misconfigured servers.
sslVerify=0
# Whether to verify the SSL certificate when fetching or pushing
# over HTTPS. DEFAULT=true. Can be overridden by the
# `GIT_SSL_NO_VERIFY` environment variable.
# sslVersion=
# The SSL version to use when negotiating an SSL connection, if you
# want to force the default. The available & default version
# depend on whether libcurl was built against NSS or OpenSSL & the
# particular configuration of the crypto library in use. Internally
# this sets the 'CURLOPT_SSL_VERSION' option; see the libcurl
# documentation for more details on the format of this option &
# for the ssl version supported. Actually the possible values of
# this option are:
#
# - sslv2
# - sslv3
# - tlsv1
# - tlsv1.0
# - tlsv1.1
# - tlsv1.2
# - tlsv1.3
# +
# Can be overridden by the `GIT_SSL_VERSION` environment variable.
# To force git to use libcurl's default ssl version and ignore any
# explicit http.sslversion option, set `GIT_SSL_VERSION` to the
# empty string.
# uploadpack=
# This serves 'git fetch-pack' & 'git ls-remote' clients.
# It is enabled by default, but a repository can disable it
# by setting this configuration item to `false`.
# userAgent=
# The HTTP USER_AGENT string presented to an HTTP server. The default
# value represents the version of the client Git such as git/1.7.1.
# This option allows you to override this value to a more common value
# such as Mozilla/4.0. This may be necessary, for instance, if
# connecting through a firewall that restricts HTTP connections to a set
# of common USER_AGENT strings (but not including those like git/1.7.1).
# Can be overridden by the `GIT_HTTP_USER_AGENT` environment variable.
# version=
# Use the specified HTTP protocol version when communicating with a server.
# If you want to force the default. The available & default version depend
# on libcurl. Actually the possible values of
# this option are:
#
# - HTTP/2
# - HTTP/1.1
#[http "<url>"]
# *=
# Any of the http.* options above can be applied selectively to some URLs.
# For a config key to match a URL, each element of the config key is
# compared to that of the URL, in the following order:
# +
# --
# . Scheme (e.g., `https` in `https://example.com/`). This field
# must match exactly between the config key and the URL.
# . Host/domain name (e.g., `example.com` in `https://example.com/`).
# This field must match between the config key and the URL. It is
# possible to specify a `*` as part of the host name to match all subdomains
# at this level. `https://*.example.com/` for example would match
# `https://foo.example.com/`, but not `https://foo.bar.example.com/`.
# . Port number (e.g., `8080` in `http://example.com:8080/`).
# This field must match exactly between the config key and the URL.
# Omitted port numbers are automatically converted to the correct
# default for the scheme before matching.
# . Path (e.g., `repo.git` in `https://example.com/repo.git`). The
# path field of the config key must match the path field of the URL
# either exactly or as a prefix of slash-delimited path elements. This means
# a config key with path `foo/` matches URL path `foo/bar`. A prefix can only
# match on a slash (`/`) boundary. Longer matches take precedence (so a config
# key with path `foo/bar` is a better match to URL path `foo/bar` than a config
# key with just path `foo/`).
# . User name (e.g., `user` in `https://[email protected]/repo.git`). If
# the config key has a user name it must match the user name in the
# URL exactly. If the config key does not have a user name, that
# config key will match a URL with any user name (including none),
# but at a lower precedence than a config key with a user name.
# --
# +
# The list above is ordered by decreasing precedence; a URL that matches
# a config key's path is preferred to one that matches its user name. For example,
# if the URL is `https://[email protected]/foo/bar` a config key match of
# `https://example.com/foo` will be preferred over a config key match of
# `https://[email protected]`.
# +
# All URLs are normalized before attempting any matching (the password part,
# if embedded in the URL, is always ignored for matching purposes) so that
# equivalent URLs that are simply spelled differently will match properly.
# Environment variable settings always override any matches. The URLs that are
# matched against are those given directly to Git commands. This means any URLs
# visited as a result of a redirection do not participate in matching.
[i18n]
# commitEncoding=
# Character encoding the commit messages are stored in; Git itself
# does not care per se, but this information is necessary e.g. when
# importing commits from emails or in the gitk graphical history
# browser (& possibly at other places in the future or in other
# porcelains). See e.g. linkgit:git-mailinfo[1]. DEFAULT='utf-8'.
# logOutputEncoding=
# Encoding to use when displaying logs. (See 'Discussion' above.)
# DEFAULT=the value of `i18n.commitEncoding` if set, & UTF-8
# otherwise.
#
# Character encoding the commit messages are converted to when
# running 'git log' & friends.
[imap]
# authMethod=
# Specify authenticate method for authentication with IMAP server.
# If Git was built with the NO_CURL option, or if your curl version is older
# than 7.34.0, or if you're running git-imap-send with the `--no-curl`
# option, the only supported method is 'CRAM-MD5'. If this isn't set
# then 'git imap-send' uses the basic IMAP plaintext LOGIN command.
# folder=
# The folder to drop the mails into, which is typically the Drafts
# folder. For example: "INBOX.Drafts", "INBOX/Drafts" or
# "[Gmail]/Drafts". Required.
# host=
# A URL identifying the server. Use an `imap://` prefix for non-secure
# connections & an `imaps://` prefix for secure connections.
# Ignored when imap.tunnel is set, but required otherwise.
# pass=
# The password to use when logging in to the server.
# port=
# An integer port number to connect to on the server.
# DEFAULT=143 for imap:// hosts & 993 for imaps:// hosts.
# Ignored when imap.tunnel is set.
# preformattedHTML=
# A boolean to enable/disable the use of html encoding when sending
# a patch. An html encoded patch will be bracketed with <pre>
# & have a content type of text/html. Ironically, enabling this
# option causes Thunderbird to send the patch as a plain/text,
# format=fixed email. DEFAULT=`false`.
# sslverify=
# A boolean to enable/disable verification of the server certificate
# used by the SSL/TLS connection. DEFAULT=`true`. Ignored when
# imap.tunnel is set.
# tunnel=
# Command used to setup a tunnel to the IMAP server through which
# commands will be piped instead of using a direct network connection
# to the server. Required when imap.host isn't set.
# user=
# The username to use when logging in to the server.
[index]
# recordEndOfIndexEntries=
# Specifies whether the index file should include an "End Of Index
# Entry" section. This reduces index load time on multiprocessor
# machines but produces a message "ignoring EOIE extension" when
# reading the index using Git versions before 2.20. Defaults to
# 'true' if index.threads has been explicitly enabled, 'false'
# otherwise.
# recordOffsetTable=
# Specifies whether the index file should include an "Index Entry
# Offset Table" section. This reduces index load time on
# multiprocessor machines but produces a message "ignoring IEOT
# extension" when reading the index using Git versions before 2.20.
# DEFAULT='true' if index.threads has been explicitly enabled,
# 'false' otherwise.
# threads=
# Specifies the number of threads to spawn when loading the index.
# This is meant to reduce index load time on multiprocessor machines.
# Specifying 0 or 'true' will cause Git to auto-detect the number of
# CPU's & set the number of threads accordingly. Specifying 1 or
# 'false' will disable multithreading. DEFAULT='true'.
# version=
# Specify the version with which new index files should be
# initialized. This does not affect existing repositories.
# If `feature.manyFiles` is enabled, then the DEFAULT=4.
[init]
templateDir=~/git/templatedir
# Specify the directory from which templates will be copied.
# (See the "TEMPLATE DIRECTORY" section of linkgit:git-init[1].)
# defaultBranch=
[instaweb]
browser=chrome
# Specify the program that will be used to browse your working
# repository in gitweb. See linkgit:git-instaweb[1].
# httpd=
# The HTTP daemon command-line to start gitweb on your working
# repository. See linkgit:git-instaweb[1].
# local=
# If true the web server started by linkgit:git-instaweb[1] will
# be bound to the local IP (127.0.0.1).
# modulePath=
# The default module path for linkgit:git-instaweb[1] to use
# instead of /usr/lib/apache2/modules. Only used if httpd
# is Apache.
# port=
# The port number to bind the gitweb httpd to. See
# linkgit:git-instaweb[1].
[interactive]
# diffFilter=
# When an interactive command (such as `git add --patch`) shows
# a colorized diff, git will pipe the diff through the shell
# command defined by this configuration variable. The command may
# mark up the diff further for human consumption, provided that it
# retains a one-to-one correspondence with the lines in the
# original diff. DEFAULT=disabled (no filtering).
# singleKey=
# In interactive commands, allow the user to provide one-letter
# input with a single key (i.e., without hitting enter).
# Currently this is used by the `--patch` mode of
# linkgit:git-add[1], linkgit:git-checkout[1],
# linkgit:git-restore[1], linkgit:git-commit[1],
# linkgit:git-reset[1], & linkgit:git-stash[1]. NOTE: this
# setting is silently ignored if portable keystroke input
# is not available; requires the Perl module Term::ReadKey.
[log]
# abbrevCommit=
# If true, makes linkgit:git-log[1], linkgit:git-show[1], &
# linkgit:git-whatchanged[1] assume `--abbrev-commit`. You may
# override this option with `--no-abbrev-commit`.
# date=
# Set the default date-time mode for the 'log' command.
# Setting a value for log.date is similar to using 'git log''s
# `--date` option. See linkgit:git-log[1] for details.
#
# Default format for human-readable dates. (Compare the
# `--date` option.) DEFAULT="default", which means to write
# dates like `Sat May 8 19:35:34 2010 -0500`.
# +
# If the format is set to "auto:foo" and the pager is in use, format
# "foo" will be the used for the date format. Otherwise "default" will
# be used.
# decorate=
# Print out the ref names of any commits that are shown by the log
# command. If 'short' is specified, the ref name prefixes 'refs/heads/',
# 'refs/tags/' & 'refs/remotes/' will not be printed. If 'full' is
# specified, the full ref name (including prefix) will be printed.
# If 'auto' is specified, then if the output is going to a terminal,
# the ref names are shown as if 'short' were given, otherwise no ref
# names are shown. This is the same as the `--decorate` option
# of the `git log`.
# excludeDecoration=
# follow=
# If `true`, `git log` will act as if the `--follow` option was used when
# a single <path> is given. This has the same limitations as `--follow`,
# i.e. it can't be used to follow multiple files & does not work well
# on non-linear history.
# graphColors=
# A list of colors, separated by commas, that can be used to draw
# history lines in `git log --graph`.
# mailmap=
# If true, makes linkgit:git-log[1], linkgit:git-show[1], &
# linkgit:git-whatchanged[1] assume `--use-mailmap`, otherwise
# assume `--no-use-mailmap`. True by default.
# showRoot=
# If `false`, `git log` & related commands will not treat the
# initial commit as a big creation event. Any root commits in
# `git log -p` output would be shown without a diff attached.
# DEFAULT=`true`.
#
# If true, the initial commit will be shown as a big creation event.
# This is equivalent to a diff against an empty tree.
# Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which
# normally hide the root commit will now show it. True by default.
# showSignature=
# If true, makes linkgit:git-log[1], linkgit:git-show[1], &
# linkgit:git-whatchanged[1] assume `--show-signature`.
#
# If `true`, `git log` & related commands will act as if the
# `--show-signature` option was passed to them.
[mailinfo]
# scissors=
# If true, makes linkgit:git-mailinfo[1] (& therefore
# linkgit:git-am[1]) act by default as if the --scissors option
# was provided on the command-line. When active, this features
# removes everything from the message body before a scissors
# line (i.e. consisting mainly of ">8", "8<" & "-").
[mailmap]
# *=
# See linkgit:git-shortlog[1].
# blob=
# Like `mailmap.file`, but consider the value as a reference to a
# blob in the repository. If both `mailmap.file` &
# `mailmap.blob` are given, both are parsed, with entries from
# `mailmap.file` taking precedence. In a bare repository, this
# DEFAULT=`HEAD:.mailmap`. In a non-bare repository, it
# DEFAULT=empty.
# file=
# The location of an augmenting mailmap file. The default
# mailmap, located in the root of the repository, is loaded
# 1st, then the mailmap file pointed to by this variable.
# The location of the mailmap file may be in a repository
# subdirectory, or somewhere outside of the repository itself.
# See linkgit:git-shortlog[1] & linkgit:git-blame[1].
[man]
# viewer=
# Specify the programs that may be used to display help in the
# 'man' format. See linkgit:git-help[1].
#[man "<tool>"]
# cmd=
# Specify the command to invoke the specified man viewer. The
# specified command is evaluated in shell with the man page
# passed as argument. (See linkgit:git-help[1].)
# path=
# Override the path for the given tool that may be used to
# display help in the 'man' format. See linkgit:git-help[1].
[merge]
# autoStash=
# branchdesc=
# In addition to branch names, populate the log message with
# the branch description text associated with them. Defaults
# to false.
# conflictStyle=
# Specify the style in which conflicted hunks are written out to
# working tree files upon merge. DEFAULT="merge", which
# shows a `<<<<<<<` conflict marker, changes made by one side,
# a `=======` marker, changes made by the other side, & then
# a `>>>>>>>` marker. An alternate style, "diff3", adds a `|||||||`
# marker & the original text before the `=======` marker.
# defaultToUpstream=
# If merge is called without any commit argument, merge the upstream
# branches configured for the current branch by using their last
# observed values stored in their remote-tracking branches.
# The values of the `branch.<current branch>.merge` that name the
# branches at the remote named by `branch.<current branch>.remote`
# are consulted, & then they are mapped via `remote.<remote>.fetch`
# to their corresponding remote-tracking branches, & the tips of
# these tracking branches are merged.
# directoryRenames=
# Whether Git detects directory renames, affecting what happens at
# merge time to new files added to a directory on one side of
# history when that directory was renamed on the other side of
# history. If merge.directoryRenames is set to "false", directory
# rename detection is disabled, meaning that such new files will be
# left behind in the old directory. If set to "true", directory
# rename detection is enabled, meaning that such new files will be
# moved into the new directory. If set to "conflict", a conflict
# will be reported for such paths. If merge.renames is false,
# merge.directoryRenames is ignored & treated as false. Defaults
# to "conflict".
# ff=
# By default, Git does not create an extra merge commit when merging
# a commit that is a descendant of the current commit. Instead, the
# tip of the current branch is fast-forwarded. When set to `false`,
# this variable tells Git to create an extra merge commit in such
# a case (equivalent to giving the `--no-ff` option from the command
# line). When set to `only`, only such fast-forward merges are
# allowed (equivalent to giving the `--ff-only` option from the
# command line).
# guitool=
# Controls which merge tool is used by linkgit:git-mergetool[1] when the
# -g/--gui flag is specified. The list below shows the valid built-in values.
# Any other value is treated as a custom merge tool & requires that a
# corresponding mergetool.<guitool>.cmd variable is defined.
# log=
# In addition to branch names, populate the log message with at
# most the specified number of one-line descriptions from the
# actual commits that are being merged. DEFAULT=false, &
# true is a synonym for 20.
# renameLimit=
# The number of files to consider when performing rename detection
# during a merge; if not specified, DEFAULT=the value of
# diff.renameLimit. This setting has no effect if rename detection
# is turned off.
# renames=
# Whether Git detects renames. If set to "false", rename detection
# is disabled. If set to "true", basic rename detection is enabled.
# DEFAULT=the value of diff.renames.
# renormalize=
# Tell Git that canonical representation of files in the
# repository has changed over time (e.g. earlier commits record
# text files with CRLF line endings, but recent ones use LF line
# endings). In such a repository, Git can convert the data
# recorded in commits to a canonical form before performing a
# merge to reduce unnecessary conflicts. For more information,
# see section "Merging branches with differing checkin/checkout
# attributes" in linkgit:gitattributes[5].
# stat=
# Whether to print the diffstat between ORIG_HEAD & the merge result
# at the end of the merge. True by default.
# summary=
# Synonym to `merge.log`; this is deprecated & will be removed in
# the future.
# suppressDest=
tool=bc4
# Controls which merge tool is used by linkgit:git-mergetool[1].
# The list below shows the valid built-in values.
# Any other value is treated as a custom merge tool & requires
# that a corresponding mergetool.<tool>.cmd variable is defined.
verbosity=4
# Controls the amount of output shown by the recursive merge
# strategy. Level 0 outputs nothing except a final error
# message if conflicts were detected. Level 1 outputs only
# conflicts, 2 outputs conflicts and file changes. Level 5 &
# above outputs debugging information. DEFAULT=level 2.
# Can be overridden by the `GIT_MERGE_VERBOSITY` environment variable.
# verifySignatures=
# If true, this is equivalent to the --verify-signatures command
# line option. See linkgit:git-merge[1] for details.
[merge "meld"]
# hasOutput=
# useAutoMerge=
#[merge "<driver>"]
# driver=
# Defines the command that implements a custom low-level
# merge driver. See linkgit:gitattributes[5] for details.
# name=
# Defines a human-readable name for a custom low-level
# merge driver. See linkgit:gitattributes[5] for details.
# recursive=
# Names a low-level merge driver to be used when
# performing an internal merge between common ancestors.
# See linkgit:gitattributes[5] for details.
[mergetool]
# keepBackup=
# After performing a merge, the original file with conflict markers
# can be saved as a file with a `.orig` extension. If this variable
# is set to `false` then this file isn't preserved. Defaults to
# `true` (i.e. keep the backup files).
# keepTemporaries=
# When invoking a custom merge tool, Git uses a set of temporary
# files to pass to the tool. If the tool returns an error & this
# variable is set to `true`, then these temporary files will be
# preserved, otherwise they will be removed after the tool has
# exited. DEFAULT=`false`.
# prompt=
# Prompt before each invocation of the merge resolution program.
# writeToTemp=
# Git writes temporary 'BASE', 'LOCAL', & 'REMOTE' versions of
# conflicting files in the worktree by default. Git will attempt
# to use a temporary directory for these files when set `true`.
# DEFAULT=`false`.
#[mergetool "<tool>"]
# cmd=
# Specify the command to invoke the specified merge tool. The
# specified command is evaluated in shell with the following
# variables available: 'BASE' is the name of a temporary file
# containing the common base of the files to be merged, if available;
# 'LOCAL' is the name of a temporary file containing the contents of
# the file on the current branch; 'REMOTE' is the name of a temporary
# file containing the contents of the file from the branch being
# merged; 'MERGED' contains the name of the file to which the merge
# tool should write the results of a successful merge.
# path=
# Override the path for the given tool. This is useful in case
# your tool isn't in the PATH.
# trustExitCode=
# For a custom merge command, specify whether the exit code of
# the merge command can be used to determine whether the merge was
# successful. If this isn't set to true then the merge target file
# timestamp is checked & the merge assumed to have been successful
# if the file has been updated, otherwise the user is prompted to
# indicate the success of the merge.
[mergetool "meld"]
# hasOutput=
# Older versions of `meld` do not support the `--output` option.
# Git will attempt to detect whether `meld` supports `--output`
# by inspecting the output of `meld --help`. Configuring
# `mergetool.meld.hasOutput` will make Git skip these checks &
# use the configured value instead. Setting `mergetool.meld.hasOutput`
# to `true` tells Git to unconditionally use the `--output` option,
# & `false` avoids using `--output`.
[mergetool "bc4"] #[mergetool "<tool>"]
cmd = C:/tools/scoop/apps/beyondcompare/current/BComp.exe \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"
trustExitCode = 1
[notes]
# displayRef=
# Which refs, in addition to the default set by `core.notesRef`
# or `GIT_NOTES_REF`, to read notes from when showing commit
# messages with the `log` family of commands. See
# linkgit:git-notes[1].
# +
# May be an unabbreviated ref name or a glob and may be specified
# multiple times. A warning will be issued for refs that do not exist,
# but a glob that does not match any refs is silently ignored.
# +
# This setting can be disabled by the `--no-notes` option,
# overridden by the `GIT_NOTES_DISPLAY_REF` environment variable,
# and overridden by the `--notes=<ref>` option.
#
# The (fully qualified) refname from which to show notes when
# showing commit messages. The value of this variable can be set
# to a glob, in which case notes from all matching refs will be
# shown. You may also specify this configuration variable
# several times. A warning will be issued for refs that do not
# exist, but a glob that does not match any refs is silently
# ignored.
# +
# This setting can be overridden with the `GIT_NOTES_DISPLAY_REF`
# environment variable, which must be a colon separated list of refs or
# globs.
# +
# The effective value of "core.notesRef" (possibly overridden by
# GIT_NOTES_REF) is also implicitly added to the list of refs to be
# displayed.
#
# Which ref (or refs, if a glob or specified more than once), in
# addition to the default set by `core.notesRef` or
# `GIT_NOTES_REF`, to read notes from when showing commit
# messages with the 'git log' family of commands.
# This setting can be overridden on the command line or by the
# `GIT_NOTES_DISPLAY_REF` environment variable.
# See linkgit:git-log[1].
# mergeStrategy=
# Which merge strategy to choose by default when resolving notes
# conflicts. Must be one of `manual`, `ours`, `theirs`, `union`, or
# `cat_sort_uniq`. DEFAULT=`manual`. See "NOTES MERGE STRATEGIES"
# section of linkgit:git-notes[1] for more information on each strategy.
#
# Which merge strategy to choose by default when resolving notes
# conflicts. Must be one of `manual`, `ours`, `theirs`, `union`, or
# `cat_sort_uniq`. DEFAULT=`manual`. See "NOTES MERGE STRATEGIES"
# section above for more information on each strategy.
# +
# This setting can be overridden by passing the `--strategy` option.
# rewriteMode=
# When copying notes during a rewrite, what to do if the target
# commit already has a note. Must be one of `overwrite`,
# `concatenate`, `cat_sort_uniq`, or `ignore`. Defaults to
# `concatenate`.
# +
# This setting can be overridden with the `GIT_NOTES_REWRITE_MODE`
# environment variable.
#
# When copying notes during a rewrite (see the
# "notes.rewrite.<command>" option), determines what to do if
# the target commit already has a note. Must be one of
# `overwrite`, `concatenate`, `cat_sort_uniq`, or `ignore`.
# DEFAULT=`concatenate`.
# +
# This setting can be overridden with the `GIT_NOTES_REWRITE_MODE`
# environment variable.
# rewriteRef=
# When copying notes during a rewrite, specifies the (fully
# qualified) ref whose notes should be copied. May be a glob,
# in which case notes in all matching refs will be copied. You
# may also specify this configuration several times.
# +
# Does not have a default value; you must configure this variable to
# enable note rewriting.
# +
# Can be overridden with the `GIT_NOTES_REWRITE_REF` environment variable.
#
# When copying notes during a rewrite, specifies the (fully
# qualified) ref whose notes should be copied. The ref may be a
# glob, in which case notes in all matching refs will be copied.
# You may also specify this configuration several times.
# +
# Does not have a default value; you must configure this variable to
# enable note rewriting. Set it to `refs/notes/commits` to enable
# rewriting for the default commit notes.
# +
# This setting can be overridden with the `GIT_NOTES_REWRITE_REF`
# environment variable, which must be a colon separated list of refs or
# globs.
#[notes "<name>"]
# mergeStrategy=
# Which merge strategy to choose when doing a notes merge into
# refs/notes/<name>. This overrides the more general
# "notes.mergeStrategy". See the "NOTES MERGE STRATEGIES" section above
# for more information on each available strategy.
#
# Which merge strategy to choose when doing a notes merge into
# refs/notes/<name>. This overrides the more general
# "notes.mergeStrategy". See the "NOTES MERGE STRATEGIES" section in
# linkgit:git-notes[1] for more information on the available strategies.
[notes "rewrite"]
# <command>=
# When rewriting commits with <command> (currently `amend` or
# `rebase`), if this variable is `false`, git will not copy
# notes from the original to the rewritten commit. Defaults to
# `true`. See also "`notes.rewriteRef`" below.
# +
# This setting can be overridden by the `GIT_NOTES_REWRITE_REF`
# environment variable.
#
# When rewriting commits with <command> (currently `amend` or
# `rebase`) & this variable is set to `true`, Git
# automatically copies your notes from the original to the
# rewritten commit. DEFAULT=`true`, but see
# "notes.rewriteRef" below.
[pack]
# allowPackReuse=
# compression=
# An integer -1..9, indicating the compression level for objects
# in a pack file. -1 is the zlib default. 0 means no
# compression, & 1..9 are various speed/size tradeoffs, 9 being
# slowest. If not set, DEFAULT=core.compression. If that is
# not set, DEFAULT=-1, the zlib default, which is "a default
# compromise between speed & compression (currently equivalent
# to level 6)."
# +
# NOTE: changing the compression level will not automatically recompress
# all existing objects. You can force recompression by passing the -F option
# to linkgit:git-repack[1].
# deltaCacheLimit=
# The maximum size of a delta, that is cached in
# linkgit:git-pack-objects[1]. This cache is used to speed up the
# writing object phase by not having to recompute the final delta
# result once the best match for all objects is found.
# DEFAULT=1000. Maximum value is 65535.
# deltaCacheSize=
# The maximum memory in bytes used for caching deltas in
# linkgit:git-pack-objects[1] before writing them out to a pack.
# This cache is used to speed up the writing object phase by not
# having to recompute the final delta result once the best match
# for all objects is found. Repacking large repositories on machines
# which are tight with memory might be badly impacted by this though,
# especially if this cache pushes the system into swapping.
# A value of 0 means no limit. The smallest size of 1 byte may be
# used to virtually disable this cache. DEFAULT=256 MiB.
# depth=
# The maximum delta depth used by linkgit:git-pack-objects[1] when no
# maximum depth is given on the command line. DEFAULT=50.
# Maximum value is 4095.
# indexVersion=
# Specify the default pack index version. Valid values are 1 for
# legacy pack index used by Git versions prior to 1.5.2, & 2 for
# the new pack index with capabilities for packs larger than 4 GB
# as well as proper protection against the repacking of corrupted
# packs. Version 2 is the default. NOTE: version 2 is enforced
# & this config option ignored whenever the corresponding pack is
# larger than 2 GB.
# +
# If you have an old Git that does not understand the version 2 `*.idx` file,
# cloning or fetching over a non native protocol (e.g. "http")
# that will copy both `*.pack` file and corresponding `*.idx` file from the
# other side may give you a repository that can't be accessed with your
# older version of Git. If the `*.pack` file is smaller than 2 GB, however,
# you can use linkgit:git-index-pack[1] on the *.pack file to regenerate
# the `*.idx` file.
# island=
# An extended regular expression configuring a set of delta
# islands. See "DELTA ISLANDS" in linkgit:git-pack-objects[1]
# for details.
# islandCore=
# Specify an island name which gets to have its objects be
# packed 1st. This creates a kind of pseudo-pack at the front
# of one pack, so that the objects from the specified island are
# hopefully faster to copy into any pack that should be served
# to a user requesting these objects. In practice this means
# that the island specified should likely correspond to what is
# the most commonly cloned in the repo. See also "DELTA ISLANDS"
# in linkgit:git-pack-objects[1].
# packSizeLimit=
# The maximum size of a pack. This setting only affects
# packing to a file when repacking, i.e. the git:// protocol
# is unaffected. It can be overridden by the `--max-pack-size`
# option of linkgit:git-repack[1]. Reaching this limit results
# in the creation of multiple packfiles; which in turn prevents
# bitmaps from being created.
# The minimum size allowed is limited to 1 MiB.
# DEFAULT=unlimited.
# Common unit suffixes of 'k', 'm', or 'g' are
# supported.
threads=0
# Specifies the number of threads to spawn when searching for best
# delta matches. This requires that linkgit:git-pack-objects[1]
# be compiled with pthreads otherwise this option is ignored with a
# warning. This is meant to reduce packing time on multiprocessor
# machines. The required amount of memory for the delta search window
# is however multiplied by the number of threads.
# Specifying 0 will cause Git to auto-detect the number of CPU's
# & set the number of threads accordingly.
# useBitmaps=
# When true, git will use pack bitmaps (if available) when packing
# to stdout (e.g., during the server side of a fetch). Defaults to
# true. You should not generally need to turn this off unless
# you are debugging pack bitmaps.
# useSparse=
# When true, git will default to using the '--sparse' option in
# 'git pack-objects' when the '--revs' option is present. This
# algorithm only walks trees that appear in paths that introduce new
# objects. This can have significant performance benefits when
# computing a pack to send a small change. However, it is possible
# that extra objects are added to the pack-file if the included
# commits contain certain types of direct renames. DEFAULT=`false`
# unless `feature.experimental` is enabled.
# window=
# The size of the window used by linkgit:git-pack-objects[1] when no
# window size is given on the command line. DEFAULT=10.
# windowMemory=
# The maximum size of memory that is consumed by each thread
# in linkgit:git-pack-objects[1] for pack window memory when
# no limit is given on the command line. The value can be
# suffixed with "k", "m", or "g". When left unconfigured (or
# set explicitly to 0), there will be no limit.
# writeBitmapHashCache=
# When true, git will include a "hash cache" section in the bitmap
# index (if one is written). This cache can be used to feed git's
# delta heuristics, potentially leading to better deltas between
# bitmapped & non-bitmapped objects (e.g., when serving a fetch
# between an older, bitmapped pack & objects that have been
# pushed since the last gc). The downside is that it consumes 4
# bytes per object of disk space. DEFAULT=true.
# writeBitmaps (deprecated)=
# This is a deprecated synonym for `repack.writeBitmaps`.
[pager]
# <cmd>=
# If the value is boolean, turns on or off pagination of the
# output of a particular Git subcommand when writing to a tty.
# Otherwise, turns on pagination for the subcommand using the
# pager specified by the value of `pager.<cmd>`. If `--paginate`
# or `--no-pager` is specified on the command line, it takes
# precedence over this option. To disable pagination for all
# commands, set `core.pager` or `GIT_PAGER` to `cat`.
[pretty]
# <name>=
# Alias for a --pretty= format string, as specified in
# linkgit:git-log[1]. Any aliases defined here can be used just
# as the built-in pretty formats could. For example,
# running `git config pretty.changelog "format:* %H %s"`
# would cause the invocation `git log --pretty=changelog`
# to be equivalent to running `git log "--pretty=format:* %H %s"`.
# NOTE: an alias with the same name as a built-in format
# will be silently ignored.
[protocol]
# allow=
# If set, provide a user defined default policy for all protocols which
# don't explicitly have a policy (`protocol.<name>.allow`). By default,
# if unset, known-safe protocols (http, https, git, ssh, file) have a
# default policy of `always`, known-dangerous protocols (ext) have a
# default policy of `never`, & all other protocols have a default
# policy of `user`. Supported policies:
# +
# --
# * `always` - protocol is always able to be used.
# * `never` - protocol is never able to be used.
# * `user` - protocol is only able to be used when `GIT_PROTOCOL_FROM_USER` is
# either unset or has a value of 1. This policy should be used when you want a
# protocol to be directly usable by the user but don't want it used by commands which
# execute clone/fetch/push commands without user input, e.g. recursive
# submodule initialization.
# --
# version=
# Experimental. If set, clients will attempt to communicate with a
# server using the specified protocol version. If unset, no
# attempt will be made by the client to communicate using a
# particular protocol version, this results in protocol version 0
# being used.
# Supported versions:
# +
# --
# * `0` - the original wire protocol.
# * `1` - the original wire protocol with the addition of a version string
# in the initial response from the server.
# * `2` - link:technical/protocol-v2.html[wire protocol version 2].
# --
#[protocol "<name>"]
# allow=
# Set a policy to be used by protocol `<name>` with clone/fetch/push
# commands. See `protocol.allow` above for the available policies.
# +
# The protocol names currently used by git are:
# +
# --
# - `file`: any local file-based path (including `file://` URLs,
# or local paths)
# version=
[pull]
# ff=
# By default, Git does not create an extra merge commit when merging
# a commit that is a descendant of the current commit. Instead, the
# tip of the current branch is fast-forwarded. When set to `false`,
# this variable tells Git to create an extra merge commit in such
# a case (equivalent to giving the `--no-ff` option from the command
# line). When set to `only`, only such fast-forward merges are
# allowed (equivalent to giving the `--ff-only` option from the
# command line). This setting overrides `merge.ff` when pulling.
# octopus=
# The default merge strategy to use when pulling multiple branches
# at once.
# rebase=
# When true, rebase branches on top of the fetched branch, instead
# of merging the default branch from the default remote when "git
# pull" is run. See "branch.<name>.rebase" for setting this on a
# per-branch basis.
# +
# When `merges`, pass the `--rebase-merges` option to 'git rebase'
# so that the local merge commits are included in the rebase (see
# linkgit:git-rebase[1] for details).
# +
# When `preserve` (deprecated in favor of `merges`), also pass
# `--preserve-merges` along to 'git rebase' so that locally committed merge
# commits will not be flattened by running 'git pull'.
# +
# When the value is `interactive`, the rebase is run in interactive mode.
# +
# *NOTE*: this is a possibly dangerous operation; do *not* use
# it unless you understand the implications (see linkgit:git-rebase[1]
# for details).
# twohead=
# The default merge strategy to use when pulling a single branch.
[push]
# default=
# Defines the action `git push` should take if no refspec is
# explicitly given. Different values are well-suited for
# specific workflows; for instance, in a purely central workflow
# (i.e. the fetch source is equal to the push destination),
# `upstream` is probably what you want. Possible values are:
# +
# --
# * `nothing` - do not push anything (error out) unless a refspec is
# explicitly given. This is primarily meant for people who want to
# avoid mistakes by always being explicit.
# * `current` - push the current branch to update a branch with the same
# name on the receiving end. Works in both central and non-central
# workflows.
# * `upstream` - push the current branch back to the branch whose
# changes are usually integrated into the current branch (which is
# called `@{upstream}`). This mode only makes sense if you are
# pushing to the same repository you would normally pull from
# (i.e. central workflow).
# * `tracking` - This is a deprecated synonym for `upstream`.
# * `simple` - in centralized workflow, work like `upstream` with an
# added safety to refuse to push if the upstream branch's name is
# different from the local one.
# +
# When pushing to a remote that is different from the remote you normally
# pull from, work as `current`. This is the safest option and is suited
# for beginners.
# +
# This mode has become the default in Git 2.0.
# * `matching` - push all branches having the same name on both ends.
# This makes the repository you are pushing to remember the set of
# branches that will be pushed out (e.g. if you always push 'maint'
# and 'master' there and no other branches, the repository you push
# to will have these two branches, and your local 'maint' and
# 'master' will be pushed there).
# +
# To use this mode effectively, you have to make sure _all_ the
# branches you would push out are ready to be pushed out before
# running 'git push', as the whole point of this mode is to allow you
# to push all of the branches in one go. If you usually finish work
# on only one branch and push out the result, while other branches are
# unfinished, this mode isn't for you. Also this mode is not
# suitable for pushing into a shared central repository, as other
# people may add new branches there, or update the tip of existing
# branches outside your control.
# +
# This used to be the default, but not since Git 2.0 (`simple` is the
# new default).
# --
# followTags=
# If set to true enable `--follow-tags` option by default. You
# may override this configuration at time of push by specifying
# `--no-follow-tags`.
gpgSign=if-asked
# May be set to a boolean value, or the string 'if-asked'. A true
# value causes all pushes to be GPG signed, as if `--signed` is
# passed to linkgit:git-push[1]. The string 'if-asked' causes
# pushes to be signed if the server supports it, as if
# `--signed=if-asked` is passed to 'git push'. A false value may
# override a value from a lower-priority config file. An explicit
# command-line flag always overrides this config option.
# pushOption=
# When no `--push-option=<option>` argument is given from the
# command line, `git push` behaves as if each <value> of
# this variable is given as `--push-option=<value>`.
# +
# This is a multi-valued variable, and an empty value can be used in a
# higher priority configuration file (e.g. `.git/config` in a
# repository) to clear the values inherited from a lower priority
# configuration files (e.g. `$HOME/.gitconfig`).
# +
#
#--
recurseSubmodules=check
# Make sure all submodule commits used by the revisions to be pushed
# are available on a remote-tracking branch. If the value is 'check'
# then Git will verify that all submodule commits that changed in the
# revisions to be pushed are available on at least one remote of the
# submodule. If any commits are missing, the push will be aborted &
# exit with non-zero status. If the value is 'on-demand' then all
# submodules that changed in the revisions to be pushed will be
# pushed. If on-demand was not able to push all necessary revisions
# it will also be aborted & exit with non-zero status. If the value
# is 'no' then default behavior of ignoring submodules when pushing
# is retained. You may override this configuration at time of push by
# specifying '--recurse-submodules=check|on-demand|no'.
# useForceIfIncludes=
[rebase]
# abbreviateCommands=
# If set to true, `git rebase` will use abbreviated command names in the
# todo list resulting in something like this:
# +
# -------------------------------------------
# p deadbee The oneline of the commit
# p fa1afe1 The oneline of the next commit
# ...
# -------------------------------------------
# +
# instead of:
# +
# -------------------------------------------
# pick deadbee The oneline of the commit
# pick fa1afe1 The oneline of the next commit
# ...
# -------------------------------------------
# +
# DEFAULT=false.
# autoSquash=
# If set to true enable `--autosquash` option by default.
# autoStash=
# When set to true, automatically create a temporary stash entry
# before the operation begins, & apply it after the operation
# ends. This means that you can run rebase on a dirty worktree.
# However, use with care: the final stash application after a
# successful rebase might result in non-trivial conflicts.
# This option can be overridden by the `--no-autostash` &
# `--autostash` options of linkgit:git-rebase[1].
# DEFAULT=false.
# backend=
# instructionFormat=
# A format string, as specified in linkgit:git-log[1], to be used for the
# todo list during an interactive rebase. The format will
# automatically have the long commit hash prepended to the format.
missingCommitsCheck=error
# If set to "warn", git rebase -i will print a warning if some
# commits are removed (e.g. a line was deleted), however the
# rebase will still proceed. If set to "error", it will print
# the previous warning & stop the rebase, 'git rebase
# --edit-todo' can then be used to correct the error. If set to
# "ignore", no checking is done.
# To drop a commit without warning or error, use the `drop`
# command in the todo list.
# DEFAULT="ignore".
# rescheduleFailedExec=
# Automatically reschedule `exec` commands that failed. This only makes
# sense in interactive mode (or when an `--exec` option was provided).
# This is the same as specifying the `--reschedule-failed-exec` option.
# stat=
# Whether to show a diffstat of what changed upstream since the last
# rebase. False by default.
# useBuiltin=
# Unused configuration variable. Used in Git versions 2.20 &
# 2.21 as an escape hatch to enable the legacy shellscript
# implementation of rebase. Now the built-in rewrite of it in C
# is always used. Setting this will emit a warning, to alert any
# remaining users that setting this now does nothing.
[receive]
# advertiseAtomic=
# By default, git-receive-pack will advertise the atomic push
# capability to its clients. If you don't want to advertise this
# capability, set this variable to false.
# advertisePushOptions=
# When set to true, git-receive-pack will advertise the push options
# capability to its clients. False by default.
# autogc=
# By default, git-receive-pack will run "git-gc --auto" after
# receiving data from git-push & updating refs. You can stop
# it by setting this variable to false.
# certNonceSeed=
# By setting this variable to a string, `git receive-pack`
# will accept a `git push --signed` & verifies it by using
# a "nonce" protected by HMAC using this string as a secret
# key.
# certNonceSlop=
# When a `git push --signed` sent a push certificate with a
# "nonce" that was issued by a receive-pack serving the same
# repository within this many seconds, export the "nonce"
# found in the certificate to `GIT_PUSH_CERT_NONCE` to the
# hooks (instead of what the receive-pack asked the sending
# side to include). This may allow writing checks in
# `pre-receive` & `post-receive` a bit easier. Instead of
# checking `GIT_PUSH_CERT_NONCE_SLOP` environment variable
# that records by how many seconds the nonce is stale to
# decide if they want to accept the certificate, they only
# can check `GIT_PUSH_CERT_NONCE_STATUS` is `OK`.
# denyCurrentBranch=
# If set to true or "refuse", git-receive-pack will deny a ref update
# to the currently checked out branch of a non-bare repository.
# Such a push is potentially dangerous because it brings the HEAD
# out of sync with the index & working tree. If set to "warn",
# print a warning of such a push to stderr, but allow the push to
# proceed. If set to false or "ignore", allow such pushes with no
# message. DEFAULT="refuse".
# +
# Another option is "updateInstead" which will update the working
# tree if pushing into the current branch. This option is
# intended for synchronizing working directories when one side isn't easily
# accessible via interactive ssh (e.g. a live web site, hence the requirement
# that the working directory be clean). This mode also comes in handy when
# developing inside a VM to test and fix code on different Operating Systems.
# +
# By default, "updateInstead" will refuse the push if the working tree or
# the index have any difference from the HEAD, but the `push-to-checkout`
# hook can be used to customize this. See linkgit:githooks[5].
# denyDeleteCurrent=
# If set to true, git-receive-pack will deny a ref update that
# deletes the currently checked out branch of a non-bare repository.
# denyDeletes=
# If set to true, git-receive-pack will deny a ref update that deletes
# the ref. Use this to prevent such a ref deletion via a push.
# denyNonFastForwards=
# If set to true, git-receive-pack will deny a ref update which is
# not a fast-forward. Use this to prevent such an update via a push,
# even if that push is forced. This configuration variable is
# set when initializing a shared repository.
# fsckObjects=
# If it is set to true, git-receive-pack will check all received
# objects. See `transfer.fsckObjects` for what's checked.
# DEFAULT=false. If not set, the value of
# `transfer.fsckObjects` is used instead.
# hideRefs=
# This variable is the same as `transfer.hideRefs`, but applies
# only to `receive-pack` (& so affects pushes, but not fetches).
# An attempt to update or delete a hidden ref by `git push` is
# rejected.
# keepAlive=
# After receiving the pack from the client, `receive-pack` may
# produce no output (if `--quiet` was specified) while processing
# the pack, causing some networks to drop the TCP connection.
# With this option set, if `receive-pack` does not transmit
# any data in this phase for `receive.keepAlive` seconds, it will
# send a short keepalive packet. DEFAULT=5 seconds; set
# to 0 to disable keepalives entirely.
# maxInputSize=
# If the size of the incoming pack stream is larger than this
# limit, then git-receive-pack will error out, instead of
# accepting the pack file. If not set or set to 0, then the size
# is unlimited.
# procReceiveRefs=
# shallowUpdate=
# If set to true, .git/shallow can be updated when new refs
# require new shallow roots. Otherwise those refs are rejected.
# unpackLimit=
# If the number of objects received in a push is below this
# limit then the objects will be unpacked into loose object
# files. However if the number of received objects equals or
# exceeds this limit then the received pack will be stored as
# a pack, after adding any missing delta bases. Storing the
# pack from a push can make the push operation complete faster,
# especially on slow filesystems. If not set, the value of
# `transfer.unpackLimit` is used instead.
# updateServerInfo=
# If set to true, git-receive-pack will run git-update-server-info
# after receiving data from git-push & updating refs.
[receive "fsck"]
# <msg-id>=
# Acts like `fsck.<msg-id>`, but is used by
# linkgit:git-receive-pack[1] instead of
# linkgit:git-fsck[1]. See the `fsck.<msg-id>` documentation for
# details.
# skipList=
# Acts like `fsck.skipList`, but is used by
# linkgit:git-receive-pack[1] instead of
# linkgit:git-fsck[1]. See the `fsck.skipList` documentation for
# details.
#[remote]
# pushDefault=
# The remote to push to by default. Overrides
# `branch.<name>.remote` for all branches, & is overridden by
# `branch.<name>.pushRemote` for specific branches.
#[remote "<name>"]
# fetch=
# The default set of "refspec" for linkgit:git-fetch[1]. See
# linkgit:git-fetch[1].
# mirror=
# If true, pushing to this remote will automatically behave
# as if the `--mirror` option was given on the command line.
# partialclonefilter=
# The filter that will be applied when fetching from this
# promisor remote.
# promisor=
# When set to true, this remote will be used to fetch promisor
# objects.
# proxy=
# For remotes that require curl (http, https & ftp), the URL to
# the proxy to use for that remote. Set to the empty string to
# disable proxying for that remote.
# proxyAuthMethod=
# For remotes that require curl (http, https & ftp), the method to use for
# authenticating against the proxy in use (probably set in
# `remote.<name>.proxy`). See `http.proxyAuthMethod`.
# prune=
# When set to true, fetching from this remote by default will also
# remove any remote-tracking references that no longer exist on the
# remote (as if the `--prune` option was given on the command line).
# Overrides `fetch.prune` settings, if any.
# pruneTags=
# When set to true, fetching from this remote by default will also
# remove any local tags that no longer exist on the remote if pruning
# is activated in general via `remote.<name>.prune`, `fetch.prune` or
# `--prune`. Overrides `fetch.pruneTags` settings, if any.
# +
# See also `remote.<name>.prune` and the PRUNING section of
# linkgit:git-fetch[1].
# push=
# The default set of "refspec" for linkgit:git-push[1]. See
# linkgit:git-push[1].
# pushurl=
# The push URL of a remote repository. See linkgit:git-push[1].
# receivepack=
# The default program to execute on the remote side when pushing. See
# option --receive-pack of linkgit:git-push[1].
# skipDefaultUpdate=
# If true, this remote will be skipped by default when updating
# using linkgit:git-fetch[1] or the `update` subcommand of
# linkgit:git-remote[1].
# skipFetchAll=
# If true, this remote will be skipped by default when updating
# using linkgit:git-fetch[1] or the `update` subcommand of
# linkgit:git-remote[1].
# tagOpt=
# Setting this value to --no-tags disables automatic tag following when
# fetching from remote <name>. Setting it to --tags will fetch every
# tag from remote <name>, even if they are not reachable from remote
# branch heads. Passing these flags directly to linkgit:git-fetch[1] can
# override this setting. See options --tags & --no-tags of
# linkgit:git-fetch[1].
# uploadpack=
# The default program to execute on the remote side when fetching. See
# option --upload-pack of linkgit:git-fetch-pack[1].
# url=
# The URL of a remote repository. See linkgit:git-fetch[1] or
# linkgit:git-push[1].
# vcs=
# Setting this to a value <vcs> will cause Git to interact with
# the remote with the git-remote-<vcs> helper.
[remotes]
# <group>=
# The list of remotes which are fetched by "git remote update
# <group>". See linkgit:git-remote[1].
[repack]
# packKeptObjects=
# If set to true, makes `git repack` act as if
# `--pack-kept-objects` was passed. See linkgit:git-repack[1] for
# details. DEFAULT=`false` normally, but `true` if a bitmap
# index is being written (either via `--write-bitmap-index` or
# `repack.writeBitmaps`).
# useDeltaBaseOffset=
# By default, linkgit:git-repack[1] creates packs that use
# delta-base offset. If you need to share your repository with
# Git older than version 1.4.4, either directly or via a dumb
# protocol such as http, then you need to set this option to
# "false" & repack. Access from old Git versions over the
# native protocol are unaffected by this option.
# useDeltaIslands=
# If set to true, makes `git repack` act as if `--delta-islands`
# was passed. DEFAULT=`false`.
# writeBitmaps=
# When true, git will write a bitmap index when packing all
# objects to disk (e.g., when `git repack -a` is run). This
# index can speed up the "counting objects" phase of subsequent
# packs created for clones & fetches, at the cost of some disk
# space & extra time spent on the initial repack. This has
# no effect if multiple packfiles are created.
# DEFAULT=true on bare repos, false otherwise.
[rerere]
# autoUpdate=
# When set to true, `git-rerere` updates the index with the
# resulting contents after it cleanly resolves conflicts using
# previously recorded resolution. DEFAULT=false.
# enabled=
# Activate recording of resolved conflicts, so that identical
# conflict hunks can be resolved automatically, should they be
# encountered again. By default, linkgit:git-rerere[1] is
# enabled if there is an `rr-cache` directory under the
# `$GIT_DIR`, e.g. if "rerere" was previously used in the
# repository.
[reset]
# quiet=
# When set to true, 'git reset' will default to the '--quiet' option.
[sendemail]
# aliasFileType=
# Format of the file(s) specified in sendemail.aliasesFile. Must be
# one of 'mutt', 'mailrc', 'pine', 'elm', or 'gnus', or 'sendmail'.
# +
# What an alias file in each format looks like can be found in
# the documentation of the email program of the same name. The
# differences and limitations from the standard formats are
# described below:
# +
# --
# sendmail;;
# * Quoted aliases and quoted addresses are not supported: lines that
# contain a `"` symbol are ignored.
# * Redirection to a file (`/path/name`) or pipe (`|command`) is not
# supported.
# * File inclusion (`:include: /path/name`) isn't supported.
# * Warnings are printed on the standard error output for any
# explicitly unsupported constructs, and any other lines that are not
# recognized by the parser.
# --
# aliasesFile=
# To avoid typing long email addresses, point this to one or more
# email aliases files. You must also supply `sendemail.aliasFileType`.
#
# sendemail.aliasFileType::
# sendemail.annotate::
# sendemail.bcc::
# sendemail.cc::
# sendemail.ccCmd::
# sendemail.chainReplyTo::
# sendemail.confirm::
# sendemail.envelopeSender::
# sendemail.from::
# sendemail.multiEdit::
# sendemail.signedoffbycc::
# sendemail.smtpPass::
# sendemail.suppresscc::
# sendemail.suppressFrom::
# sendemail.to::
# sendemail.tocmd::
# sendemail.smtpDomain::
# sendemail.smtpServer::
# sendemail.smtpServerPort::
# sendemail.smtpServerOption::
# sendemail.smtpUser::
# sendemail.thread::
# sendemail.transferEncoding::
# sendemail.validate::
# sendemail.xmailer::
# See linkgit:git-send-email[1] for description.
# forbidSendmailVariables=
# confirm=
# Sets the default for whether to confirm before sending. Must be
# one of 'always', 'never', 'cc', 'compose', or 'auto'. See `--confirm`
# in the previous section for the meaning of these values.
# identity=
# A configuration identity. When given, causes values in the
# 'sendemail.<identity>' subsection to take precedence over
# values in the 'sendemail' section. The default identity is
# the value of `sendemail.identity`.
# multiEdit=
# If true (default), a single editor instance will be spawned to edit
# files you have to edit (patches when `--annotate` is used, & the
# summary when `--compose` is used). If false, files will be edited one
# after the other, spawning a new editor each time.
# signedoffcc (deprecated)=
# Deprecated alias for `sendemail.signedoffbycc`.
# smtpBatchSize=
# Number of messages to be sent per connection, after that a relogin
# will happen. If the value is 0 or undefined, send all messages in
# one connection.
# See also the `--batch-size` option of linkgit:git-send-email[1].
# smtpEncryption=
# See linkgit:git-send-email[1] for description. NOTE: this
# setting isn't subject to the 'identity' mechanism.
# smtpReloginDelay=
# Seconds wait before reconnecting to smtp server.
# See also the `--relogin-delay` option of linkgit:git-send-email[1].
# smtpssl (deprecated)=
# Deprecated alias for 'sendemail.smtpEncryption = ssl'.
# smtpsslcertpath=
# Path to ca-certificates (either a directory or a single file).
# Set it to an empty string to disable certificate verification.
#[sendemail "<identity>"]
# *=
# Identity-specific versions of the 'sendemail.*' parameters
# found below, taking precedence over those when this
# identity is selected, through either the command-line or
# `sendemail.identity`.
[sequence]
# editor=
# Text editor used by `git rebase -i` for editing the rebase instruction file.
# The value is meant to be interpreted by the shell when it is used.
# It can be overridden by the `GIT_SEQUENCE_EDITOR` environment variable.
# When not configured the default commit message editor is used instead.
[showBranch]
# default=
# The default set of branches for linkgit:git-show-branch[1].
# See linkgit:git-show-branch[1].
#CUSTOM CONFIG ENTRY FOR SMARTGIT
[smartgit "submodule"]
fetchalways = false
initializenew = true
update = true
[splitIndex]
# maxPercentChange=
# When the split index feature is used, this specifies the
# percent of entries the split index can contain compared to the
# total number of entries in both the split index & the shared
# index before a new shared index is written.
# The value should be between 0 & 100. If the value is 0 then
# a new shared index is always written, if it is 100 a new
# shared index is never written.
# By default the value is 20, so a new shared index is written
# if the number of entries in the split index would be greater
# than 20 percent of the total number of entries.
# See linkgit:git-update-index[1].
# sharedIndexExpire=
# When the split index feature is used, shared index files that
# were not modified since the time this variable specifies will
# be removed when a new shared index file is created. The value
# "now" expires all entries immediately, & "never" suppresses
# expiration altogether.
# The default value is "2.weeks.ago".
# NOTE: a shared index file is considered modified (for the
# purpose of expiration) each time a new split-index file is
# either created based on it or read from it.
# See linkgit:git-update-index[1].
[ssh]
# variant=
# By default, Git determines the command line arguments to use
# based on the basename of the configured SSH command (configured
# using the environment variable `GIT_SSH` or `GIT_SSH_COMMAND` or
# the config setting `core.sshCommand`). If the basename is
# unrecognized, Git will attempt to detect support of OpenSSH
# options by 1st invoking the configured SSH command with the
# `-G` (print configuration) option & will subsequently use
# OpenSSH options (if that is successful) or no options besides
# the host & remote command (if it fails).
# +
# The config variable `ssh.variant` can be set to override this detection.
# Valid values are `ssh` (to use OpenSSH options), `plink`, `putty`,
# `tortoiseplink`, `simple` (no options except the host and remote command).
# The default auto-detection can be explicitly requested using the value
# `auto`. Any other value is treated as `ssh`. This setting can also be
# overridden via the environment variable `GIT_SSH_VARIANT`.
# +
# The current command-line parameters used for each variant are as
# follows:
# +
#
#--
[stash]
# showPatch=
# If this is set to true, the `git stash show` command without an
# option will show the stash entry in patch form. DEFAULT=false.
# See description of 'show' command in linkgit:git-stash[1].
# showStat=
# If this is set to true, the `git stash show` command without an
# option will show diffstat of the stash entry. DEFAULT=true.
# See description of 'show' command in linkgit:git-stash[1].
# useBuiltin=
# Set to `false` to use the legacy shell script implementation of
# linkgit:git-stash[1]. Is `true` by default, which means use
# the built-in rewrite of it in C.
# +
# The C rewrite is 1st included with Git version 2.22 (and Git for Windows
# version 2.19). This option serves as an escape hatch to re-enable the
# legacy version in case any bugs are found in the rewrite. This option and
# the shell script version of linkgit:git-stash[1] will be removed in some
# future release.
# +
# If you find some reason to set this option to `false`, other than
# one-off testing, you should report the behavior difference as a bug in
# Git (see https://git-scm.com/community for details).
[status]
# aheadBehind=
# Set to true to enable `--ahead-behind` & false to enable
# `--no-ahead-behind` by default in linkgit:git-status[1] for
# non-porcelain status formats. DEFAULT=true.
# branch=
# Set to true to enable --branch by default in linkgit:git-status[1].
# The option --no-branch takes precedence over this variable.
# displayCommentPrefix=
# If set to true, linkgit:git-status[1] will insert a comment
# prefix before each output line (starting with
# `core.commentChar`, i.e. `#` by default). This was the
# behavior of linkgit:git-status[1] in Git 1.8.4 & previous.
# DEFAULT=false.
# relativePaths=
# By default, linkgit:git-status[1] shows paths relative to the
# current directory. Setting this variable to `false` shows paths
# relative to the repository root (this was the default for Git
# prior to v1.5.4).
# renameLimit=
# The number of files to consider when performing rename detection
# in linkgit:git-status[1] & linkgit:git-commit[1]. Defaults to
# the value of diff.renameLimit.
# renames=
# Whether and how Git detects renames in linkgit:git-status[1] &
# linkgit:git-commit[1] . If set to "false", rename detection is
# disabled. If set to "true", basic rename detection is enabled.
# If set to "copies" or "copy", Git will detect copies, as well.
# DEFAULT=the value of diff.renames.
# short=
# Set to true to enable --short by default in linkgit:git-status[1].
# The option --no-short takes precedence over this variable.
showStash=1
# If set to true, linkgit:git-status[1] will display the number of
# entries currently stashed away.
# DEFAULT=false.
# showUntrackedFiles=
# By default, linkgit:git-status[1] & linkgit:git-commit[1] show
# files which are not currently tracked by Git. Directories which
# contain only untracked files, are shown with the directory name
# only. Showing untracked files means that Git needs to lstat() all
# the files in the whole repository, which might be slow on some
# systems. So, this variable controls how the commands displays
# the untracked files. Possible values are:
# +
# --
# * `no` - Show no untracked files.
# * `normal` - Show untracked files and directories.
# * `all` - Show also individual files in untracked directories.
# --
# +
# If this variable isn't specified, it DEFAULT='normal'.
# This variable can be overridden with the -u|--untracked-files option
# of linkgit:git-status[1] and linkgit:git-commit[1].
# submoduleSummary=
# DEFAULT=false.
# If this is set to a non zero number or true (identical to -1 or an
# unlimited number), the submodule summary will be enabled & a
# summary of commits for modified submodules will be shown (see
# --summary-limit option of linkgit:git-submodule[1]). Please note
# that the summary output command will be suppressed for all
# submodules when `diff.ignoreSubmodules` is set to 'all' or only
# for those submodules where `submodule.<name>.ignore=all`. The only
# exception to that rule is that status & commit will show staged
# submodule changes. To
# also view the summary for ignored submodules you can either use
# the --ignore-submodules=dirty command-line option or the 'git
# submodule summary' command, which shows a similar output but does
# not honor these settings.
[submodule]
# active=
# A repeated field which contains a pathspec used to match against a
# submodule's path to determine if the submodule is of interest to git
# commands. See linkgit:gitsubmodules[7] for details.
# alternateErrorStrategy=
# Specifies how to treat errors with the alternates for a submodule
# as computed via `submodule.alternateLocation`. Possible values are
# `ignore`, `info`, `die`. DEFAULT=`die`. NOTE: if set to `ignore`
# or `info`, & if there is an error with the computed alternate, the
# clone proceeds as if no alternate was specified.
# alternateLocation=
# Specifies how the submodules obtain alternates when submodules are
# cloned. Possible values are `no`, `superproject`.
# By default `no` is assumed, which doesn't add references. When the
# value is set to `superproject` the submodule to be cloned computes
# its alternates location relative to the superprojects alternate.
fetchJobs=4
# Specifies how many submodules are fetched/cloned at the same time.
# A positive integer allows up to that number of submodules fetched
# in parallel. A value of 0 will give some reasonable default.
# If unset, it DEFAULT=1.
recurse=1
# Specifies if commands recurse into submodules by default. This
# applies to all commands that have a `--recurse-submodules` option,
# except `clone`.
# DEFAULT=false.
#[submodule "<name>"]
# active=
# Boolean value indicating if the submodule is of interest to git
# commands. This config option takes precedence over the
# submodule.active config option. See linkgit:gitsubmodules[7] for
# details.
# branch=
# The remote branch name for a submodule, used by `git submodule
# update --remote`. Set this option to override the value found in
# the `.gitmodules` file. See linkgit:git-submodule[1] &
# linkgit:gitmodules[5] for details.
#
# A remote branch name for tracking updates in the upstream submodule.
# If the option isn't specified, it DEFAULT='master'. A special
# value of `.` is used to indicate that the name of the branch in the
# submodule should be the same name as the current branch in the
# current repository. See the `--remote` documentation in
# linkgit:git-submodule[1] for details.
# fetchRecurseSubmodules=
# This option can be used to control recursive fetching of this
# submodule. It can be overridden by using the --[no-]recurse-submodules
# command-line option to "git fetch" & "git pull".
# This setting will override that from in the linkgit:gitmodules[5]
# file.
#
# This option can be used to control recursive fetching of this
# submodule. If this option is also present in the submodules entry in
# .git/config of the superproject, the setting there will override the
# one found in .gitmodules.
# Both settings can be overridden on the command line by using the
# "--[no-]recurse-submodules" option to "git fetch" & "git pull".
# ignore=
# Defines under what circumstances "git status" & the diff family show
# a submodule as modified. When set to "all", it will never be considered
# modified (but it will nonetheless show up in the output of status &
# commit when it has been staged), "dirty" will ignore all changes
# to the submodules work tree &
# takes only differences between the HEAD of the submodule & the commit
# recorded in the superproject into account. "untracked" will additionally
# let submodules with modified tracked files in their work tree show up.
# Using "none" (the default when this option isn't set) also shows
# submodules that have untracked files in their work tree as changed.
# This setting overrides any setting made in .gitmodules for this submodule,
# both settings can be overridden on the command line by using the
# "--ignore-submodules" option. The 'git submodule' commands are not
# affected by this setting.
#
# Defines under what circumstances "git status" & the diff family show
# a submodule as modified. The following values are supported:
# +
# --
# all;; The submodule will never be considered modified (but will
# nonetheless show up in the output of status and commit when it has
# been staged).
# dirty;; All changes to the submodule's work tree will be ignored, only
# committed differences between the HEAD of the submodule and its
# recorded state in the superproject are taken into account.
# untracked;; Only untracked files in submodules will be ignored.
# Committed differences and modifications to tracked files will show
# up.
# none;; No modifications to submodules are ignored, all of committed
# differences, and modifications to tracked and untracked files are
# shown. This is the default option.
# If this option is also present in the submodules entry in .git/config
# of the superproject, the setting there will override the one found in
# .gitmodules.
# Both settings can be overridden on the command line by using the
# "--ignore-submodules" option. The 'git submodule' commands are not
# affected by this setting.
# --
# path=
# Defines the path, relative to the top-level directory of the Git
# working tree, where the submodule is expected to be checked out.
# The path name must not end with a `/`. All submodule paths must
# be unique within the .gitmodules file.
# shallow=
# When set to true, a clone of this submodule will be performed as a
# shallow clone (with a history depth of 1) unless the user explicitly
# asks for a non-shallow clone.
# update=
# The method by which a submodule is updated by 'git submodule update',
# which is the only affected command, others such as
# 'git checkout --recurse-submodules' are unaffected. It exists for
# historical reasons, when 'git submodule' was the only command to
# interact with submodules; settings like `submodule.active`
# & `pull.rebase` are more specific. It is populated by
# `git submodule init` from the linkgit:gitmodules[5] file.
# See description of 'update' command in linkgit:git-submodule[1].
#
# Defines the default update procedure for the named submodule,
# i.e. how the submodule is updated by "git submodule update"
# command in the superproject. This is only used by `git
# submodule init` to initialize the configuration variable of
# the same name. Allowed values here are 'checkout', 'rebase',
# 'merge' or 'none'. See description of 'update' command in
# linkgit:git-submodule[1] for their meaning. For security
# reasons, the '!command' form isn't accepted here.
# url=
# The URL for a submodule. This variable is copied from the .gitmodules
# file to the git config via 'git submodule init'. The user can change
# the configured URL before obtaining the submodule via 'git submodule
# update'. If neither submodule.<name>.active or submodule.active are
# set, the presence of this variable is used as a fallback to indicate
# whether the submodule is of interest to git commands.
# See linkgit:git-submodule[1] & linkgit:gitmodules[5] for details.
#
# Defines a URL from which the submodule repository can be cloned.
# This may be either an absolute URL ready to be passed to
# linkgit:git-clone[1] or (if it begins with ./ or ../) a location
# relative to the superproject's origin repository.
[svn]
# brokenSymlinkWorkaround=
# This disables potentially expensive checks to workaround
# broken symlinks checked into SVN by broken clients. Set this
# option to "false" if you track a SVN repository with many
# empty blobs that are not symlinks. This option may be changed
# while 'git svn' is running & take effect on the next
# revision fetched. If unset, 'git svn' assumes this option to
# be "true".
# pathnameencoding=
# This instructs git svn to recode pathnames to a given encoding.
# It can be used by windows users & by those who work in non-utf8
# locales to avoid corrupted file names with non-ASCII characters.
# Valid encodings are the ones supported by Perl's Encode module.
[tag]
# forceSignAnnotated=
# A boolean to specify whether annotated tags created should be GPG signed.
# If `--annotate` is specified on the command line, it takes
# precedence over this option.
# gpgSign=
# A boolean to specify whether all tags should be GPG signed.
# Use of this option when running in an automated script can
# result in a large number of tags being signed. It is therefore
# convenient to use an agent to avoid typing your gpg passphrase
# several times. NOTE: this option doesn't affect tag signing
# behavior enabled by "-u <keyid>" or "--local-user=<keyid>" options.
# sort=
# This variable controls the sort ordering of tags when displayed by
# linkgit:git-tag[1]. Without the "--sort=<value>" option provided, the
# value of this variable will be used as the default.
[tar]
# umask=
# This variable can be used to restrict the permission bits of
# tar archive entries. DEFAULT=0002, which turns off the
# world write bit. The special value "user" indicates that the
# archiving user's umask will be used instead. See umask(2) for
# details. If `--remote` is used then only the configuration of
# the remote repository takes effect.
#
# This variable can be used to restrict the permission bits of
# tar archive entries. DEFAULT=0002, which turns off the
# world write bit. The special value "user" indicates that the
# archiving user's umask will be used instead. See umask(2) &
# linkgit:git-archive[1].
#[tar "<format>"]
# command=
# This variable specifies a shell command through which the tar
# output generated by `git archive` should be piped. The command
# is executed using the shell with the generated tar file on its
# standard input, & should produce the final output on its
# standard output. Any compression-level options will be passed
# to the command (e.g., "-9"). An output file with the same
# extension as `<format>` will be use this format if no other
# format is given.
# +
# The "tar.gz" and "tgz" formats are defined automatically and default to
# `gzip -cn`. You may override them with custom commands.
# remote=
# If true, enable `<format>` for use by remote clients via
# linkgit:git-upload-archive[1]. DEFAULT=false for
# user-defined formats, but true for the "tar.gz" & "tgz"
# formats.
[trace2]
# configParams=
# A comma-separated list of patterns of "important" config
# settings that should be recorded in the trace2 output.
# For example, `core.*,remote.*.url` would cause the trace2
# output to contain events listing each configured remote.
# May be overridden by the `GIT_TRACE2_CONFIG_PARAMS` environment
# variable. Unset by default.
# destinationDebug=
# Boolean. When true Git will print error messages when a
# trace target destination can't be opened for writing.
# By default, these errors are suppressed & tracing is
# silently disabled. May be overridden by the
# `GIT_TRACE2_DST_DEBUG` environment variable.
# envVars=
# eventBrief=
# Boolean. When true `time`, `filename`, & `line` fields are
# omitted from event output. May be overridden by the
# `GIT_TRACE2_EVENT_BRIEF` environment variable. DEFAULT=false.
# eventNesting=
# Integer. Specifies desired depth of nested regions in the
# event output. Regions deeper than this value will be
# omitted. May be overridden by the `GIT_TRACE2_EVENT_NESTING`
# environment variable. DEFAULT=2.
# eventTarget=
# This variable controls the event target destination.
# It may be overridden by the `GIT_TRACE2_EVENT` environment variable.
# The following table shows possible values.
# +
# include::../trace2-target-values.txt[]
# maxFiles=
# Integer. When writing trace files to a target directory, do not
# write additional traces if we would exceed this many files. Instead,
# write a sentinel file that will block further tracing to this
# directory. DEFAULT=0, which disables this check.
# normalBrief=
# Boolean. When true `time`, `filename`, & `line` fields are
# omitted from normal output. May be overridden by the
# `GIT_TRACE2_BRIEF` environment variable. DEFAULT=false.
# normalTarget=
# This variable controls the normal target destination.
# It may be overridden by the `GIT_TRACE2` environment variable.
# The following table shows possible values.
# perfBrief=
# Boolean. When true `time`, `filename`, & `line` fields are
# omitted from PERF output. May be overridden by the
# `GIT_TRACE2_PERF_BRIEF` environment variable. DEFAULT=false.
# perfTarget=
# This variable controls the performance target destination.
# It may be overridden by the `GIT_TRACE2_PERF` environment variable.
# The following table shows possible values.
[trailer]
# ifexists=
# This option makes it possible to choose what action will be
# performed when there is already at least one trailer with the
# same <token> in the message.
# +
# The valid values for this option are: `addIfDifferentNeighbor` (this
# is the default), `addIfDifferent`, `add`, `replace` or `doNothing`.
# +
# With `addIfDifferentNeighbor`, a new trailer will be added only if no
# trailer with the same (<token>, <value>) pair is above or below the line
# where the new trailer will be added.
# +
# With `addIfDifferent`, a new trailer will be added only if no trailer
# with the same (<token>, <value>) pair is already in the message.
# +
# With `add`, a new trailer will be added, even if some trailers with
# the same (<token>, <value>) pair are already in the message.
# +
# With `replace`, an existing trailer with the same <token> will be
# deleted and the new trailer will be added. The deleted trailer will be
# the closest one (with the same <token>) to the place where the new one
# will be added.
# +
# With `doNothing`, nothing will be done; that is no new trailer will be
# added if there is already one with the same <token> in the message.
# ifmissing=
# This option makes it possible to choose what action will be
# performed when there isn't yet any trailer with the same
# <token> in the message.
# +
# The valid values for this option are: `add` (this is the default) and
# `doNothing`.
# +
# With `add`, a new trailer will be added.
# +
# With `doNothing`, nothing will be done.
# separators=
# This option tells which characters are recognized as trailer
# separators. By default only ':' is recognized as a trailer
# separator, except that '=' is always accepted on the command
# line for compatibility with other git commands.
# +
# The 1st character given by this option will be the default character
# used when another separator isn't specified in the config for this
# trailer.
# +
# For example, if the value for this option is "%=$", then only lines
# using the format '<token><sep><value>' with <sep> containing '%', '='
# or '$' and then spaces will be considered trailers. And '%' will be
# the default separator used, so by default trailers will appear like:
# '<token>% <value>' (one percent sign and one space will appear between
# the token and the value).
# where=
# This option tells where a new trailer will be added.
# +
# This can be `end`, which is the default, `start`, `after` or `before`.
# +
# If it is `end`, then each new trailer will appear at the end of the
# existing trailers.
# +
# If it is `start`, then each new trailer will appear at the start,
# instead of the end, of the existing trailers.
# +
# If it is `after`, then each new trailer will appear just after the
# last trailer with the same <token>.
# +
# If it is `before`, then each new trailer will appear just before the
# 1st trailer with the same <token>.
#[trailer "<token>"]
# command=
# This option can be used to specify a shell command that will
# be called to automatically add or modify a trailer with the
# specified <token>.
# +
# When this option is specified, the behavior is as if a special
# '<token>=<value>' argument were added at the beginning of the command
# line, where <value> is taken to be the standard output of the
# specified command with any leading and trailing whitespace trimmed
# off.
# +
# If the command contains the `$ARG` string, this string will be
# replaced with the <value> part of an existing trailer with the same
# <token>, if any, before the command is launched.
# +
# If some '<token>=<value>' arguments are also passed on the command
# line, when a 'trailer.<token>.command' is configured, the command will
# also be executed for each of these arguments. And the <value> part of
# these arguments, if any, will be used to replace the `$ARG` string in
# the command.
# ifexists=
# This option takes the same values as the 'trailer.ifexists'
# configuration variable & it overrides what is specified by
# that option for trailers with the specified <token>.
# ifmissing=
# This option takes the same values as the 'trailer.ifmissing'
# configuration variable & it overrides what is specified by
# that option for trailers with the specified <token>.
# key=
# This `key` will be used instead of <token> in the trailer. At
# the end of this key, a separator can appear & then some
# space characters. By default the only valid separator is ':',
# but this can be changed using the `trailer.separators` config
# variable.
# +
# If there is a separator, then the key will be used instead of both the
# <token> and the default separator when adding the trailer.
# where=
# This option takes the same values as the 'trailer.where'
# configuration variable & it overrides what is specified by
# that option for trailers with the specified <token>.
[transfer]
# fsckObjects=
# When `fetch.fsckObjects` or `receive.fsckObjects` are
# not set, the value of this variable is used instead.
# DEFAULT=false.
# +
# When set, the fetch or receive will abort in the case of a malformed
# object or a link to a nonexistent object. In addition, various other
# issues are checked for, including legacy issues (see `fsck.<msg-id>`),
# and potential security issues like the existence of a `.GIT` directory
# or a malicious `.gitmodules` file (see the release notes for v2.2.1
# and v2.17.1 for details). Other sanity and security checks may be
# added in future releases.
# +
# On the receiving side, failing fsckObjects will make those objects
# unreachable, see "QUARANTINE ENVIRONMENT" in
# linkgit:git-receive-pack[1]. On the fetch side, malformed objects will
# instead be left unreferenced in the repository.
# +
# Due to the non-quarantine nature of the `fetch.fsckObjects`
# implementation it can't be relied upon to leave the object store
# clean like `receive.fsckObjects` can.
# +
# As objects are unpacked they're written to the object store, so there
# can be cases where malicious objects get introduced even though the
# "fetch" failed, only to have a subsequent "fetch" succeed because only
# new incoming objects are checked, not those that have already been
# written to the object store. That difference in behavior should not be
# relied upon. In the future, such objects may be quarantined for
# "fetch" as well.
# +
# For now, the paranoid need to find some way to emulate the quarantine
# environment if they'd like the same protection as "push". E.g. in the
# case of an internal mirror do the mirroring in two steps, one to fetch
# the untrusted objects, and then do a second "push" (which will use the
# quarantine) to another internal repo, and have internal clients
# consume this pushed-to repository, or embargo internal fetches and
# only allow them once a full "fsck" has run (and no new fetches have
# happened in the meantime).
# hideRefs=
# String(s) `receive-pack` & `upload-pack` use to decide which
# refs to omit from their initial advertisements. Use more than
# one definition to specify multiple prefix strings. A ref that is
# under the hierarchies listed in the value of this variable is
# excluded, & is hidden when responding to `git push` or `git
# fetch`. See `receive.hideRefs` & `uploadpack.hideRefs` for
# program-specific versions of this config.
# +
# You may also include a `!` in front of the ref name to negate the entry,
# explicitly exposing it, even if an earlier entry marked it as hidden.
# If you have multiple hideRefs values, later entries override earlier ones
# (and entries in more-specific config files override less-specific ones).
# +
# If a namespace is in use, the namespace prefix is stripped from each
# reference before it is matched against `transfer.hiderefs` patterns.
# For example, if `refs/heads/master` is specified in `transfer.hideRefs` and
# the current namespace is `foo`, then `refs/namespaces/foo/refs/heads/master`
# is omitted from the advertisements but `refs/heads/master` and
# `refs/namespaces/bar/refs/heads/master` are still advertised as so-called
# "have" lines. In order to match refs before stripping, add a `^` in front of
# the ref name. If you combine `!` and `^`, `!` must be specified 1st.
# +
# Even if you hide refs, a client may still be able to steal the target
# objects via the techniques described in the "SECURITY" section of the
# linkgit:gitnamespaces[7] man page; it's best to keep private data in a
# separate repository.
# unpackLimit=
# When `fetch.unpackLimit` or `receive.unpackLimit` are
# not set, the value of this variable is used instead.
# The default value is 100.
[uploadarchive]
# allowUnreachable=
# If true, allow clients to use `git archive --remote` to request
# any tree, whether reachable from the ref tips or not. See the
# discussion in the "SECURITY" section of
# linkgit:git-upload-archive[1] for more details. Defaults to
# `false`.
[uploadpack]
allowFilter=1
# If this option is set, `upload-pack` will support partial
# clone & partial fetch object filtering.
# allowRefInWant=
# If this option is set, `upload-pack` will support the `ref-in-want`
# feature of the protocol version 2 `fetch` command. This feature
# is intended for the benefit of load-balanced servers which may
# not have the same view of what OIDs their refs point to due to
# replication delay.
# hideRefs=
# This variable is the same as `transfer.hideRefs`, but applies
# only to `upload-pack` (& so affects only fetches, not pushes).
# An attempt to fetch a hidden ref by `git fetch` will fail. See
# also `uploadpack.allowTipSHA1InWant`.
keepAlive=9
# When `upload-pack` has started `pack-objects`, there may be a
# quiet period while `pack-objects` prepares the pack. Normally
# it would output progress information, but if `--quiet` was used
# for the fetch, `pack-objects` will output nothing at all until
# the pack data begins. Some clients & networks may consider
# the server to be hung & give up. Setting this option instructs
# `upload-pack` to send an empty keepalive packet every
# `uploadpack.keepAlive` seconds. Setting this option to 0
# disables keepalive packets entirely. DEFAULT=5 seconds.
# packObjectsHook=
# If this option is set, when `upload-pack` would run
# `git pack-objects` to create a packfile for a client, it will
# run this shell command instead. The `pack-objects` command &
# arguments it _would_ have run (including the `git pack-objects`
# at the beginning) are appended to the shell command. The stdin
# & stdout of the hook are treated as if `pack-objects` itself
# was run. I.e., `upload-pack` will feed input intended for
# `pack-objects` to the hook, & expects a completed packfile on
# stdout.
# +
# NOTE: this configuration variable is ignored if it is seen in the
# repository-level config (this is a safety measure against fetching from
# untrusted repositories).
[uploadpackfilter]
# allow=
[uploadpackfilter "tree"]
# maxDepth=
#[url "<base>"]
# insteadOf=
# Any URL that starts with this value will be rewritten to
# start, instead, with <base>. In cases where some site serves a
# large number of repositories, & serves them with multiple
# access methods, & some users need to use different access
# methods, this feature allows people to specify any of the
# equivalent URLs & have Git automatically rewrite the URL to
# the best alternative for the particular user, even for a
# never-before-seen repository on the site. When more than one
# insteadOf strings match a given URL, the longest match is used.
# +
# NOTE: any protocol restrictions will be applied to the rewritten
# URL. If the rewrite changes the URL to use a custom protocol or remote
# helper, you may need to adjust the `protocol.*.allow` config to permit
# the request. In particular, protocols you expect to use for submodules
# must be set to `always` rather than the default of `user`. See the
# description of `protocol.allow` above.
# pushInsteadOf=
# Any URL that starts with this value will not be pushed to;
# instead, it will be rewritten to start with <base>, & the
# resulting URL will be pushed to. In cases where some site serves
# a large number of repositories, & serves them with multiple
# access methods, some of which do not allow push, this feature
# allows people to specify a pull-only URL & have Git
# automatically use an appropriate URL to push, even for a
# never-before-seen repository on the site. When more than one
# pushInsteadOf strings match a given URL, the longest match is
# used. If a remote has an explicit pushurl, Git will ignore this
# setting for that remote.
#######################################################################################
# Clone everything over git://...
#[url "https://chromium.googlesource"]
# insteadOf = "git://chromium.googlesource"
#[url "git://"]
# insteadOf = "https://"
# ...but push over HTTPS (since you cant push over git://)
[url "https://github.com/"]
pushInsteadOf = git://github.com/
####################################################################################
[user]
name = Richard Yang
email = [email protected]
# author.name::
# author.email::
# committer.name::
# committer.email::
# The `user.name` and `user.email` variables determine what ends
# up in the `author` and `committer` field of commit
# objects.
# If you need the `author` or `committer` to be different, the
# `author.name`, `author.email`, `committer.name` or
# `committer.email` variables can be set.
# Also, all of these can be overridden by the `GIT_AUTHOR_NAME`,
# `GIT_AUTHOR_EMAIL`, `GIT_COMMITTER_NAME`,
# `GIT_COMMITTER_EMAIL` and `EMAIL` environment variables.
# See linkgit:git-commit-tree[1] for more information.
# signingKey=
# If linkgit:git-tag[1] or linkgit:git-commit[1] isn't selecting the
# key you want it to automatically when creating a signed tag or
# commit, you can override the default selection with this variable.
# This option is passed unchanged to gpg's --local-user parameter,
# so you may specify a key using any method that gpg supports.
# useConfigOnly=
# Instruct Git to avoid trying to guess defaults for `user.email`
# and `user.name`, & instead retrieve the values only from the
# configuration. For example, if you have multiple email addresses
# & would like to use a different one for each repository, then
# with this configuration option set to `true` in the global config
# along with a name, Git will prompt you to set up an email before
# making new commits in a newly cloned repository.
# DEFAULT=`false`.
[versionsort]
# prereleaseSuffix (deprecated)=
# Deprecated alias for `versionsort.suffix`. Ignored if
# `versionsort.suffix` is set.
# suffix=
# Even when version sort is used in linkgit:git-tag[1], tagnames
# with the same base version but different suffixes are still sorted
# lexicographically, resulting e.g. in prerelease tags appearing
# after the main release (e.g. "1.0-rc1" after "1.0"). This
# variable can be specified to determine the sorting order of tags
# with different suffixes.
# +
# By specifying a single suffix in this variable, any tagname containing
# that suffix will appear before the corresponding main release. E.g. if
# the variable is set to "-rc", then all "1.0-rcX" tags will appear before
# "1.0". If specified multiple times, once per suffix, then the order of
# suffixes in the configuration will determine the sorting order of tagnames
# with those suffixes. E.g. if "-pre" appears before "-rc" in the
# configuration, then all "1.0-preX" tags will be listed before any
# "1.0-rcX" tags. The placement of the main release tag relative to tags
# with various suffixes can be determined by specifying the empty suffix
# among those other suffixes. E.g. if the suffixes "-rc", "", "-ck" and
# "-bfs" appear in the configuration in this order, then all "v4.8-rcX" tags
# are listed 1st, followed by "v4.8", then "v4.8-ckX" and finally
# "v4.8-bfsX".
# +
# If more than one suffixes match the same tagname, then that tagname will
# be sorted according to the suffix which starts at the earliest position in
# the tagname. If more than one different matching suffixes start at
# that earliest position, then that tagname will be sorted according to the
# longest of those suffixes.
# The sorting order between different suffixes is undefined if they are
# in multiple config files.
[web]
browser=chrome
# Specify a web browser that may be used by some commands.
# Currently only linkgit:git-instaweb[1] & linkgit:git-help[1]
# may use it.
[worktree]
guessRemote=1
# If no branch is specified & neither `-b` nor `-B` nor
# `--detach` is used, then `git worktree add` defaults to
# creating a new branch from HEAD. If `worktree.guessRemote` is
# set to true, `worktree add` tries to find a remote-tracking
# branch whose name uniquely matches the new branch name. If
# such a branch exists, it is checked out & set as "upstream"
# for the new branch. If no such match can be found, it falls
# back to creating a new branch from the current HEAD.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment