X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-repo-config.html;h=79aeedb653808c0da97cb58024ac54a4d32c52fa;hb=26a5737702ae9a7bec141d68b1c756235c55cb89;hp=3d36447fe0b166e7c66a4f2d4ea6b5702dc57e49;hpb=63636e5fc93a42d22571ac836ff9fbfb24e108d9;p=git.git diff --git a/git-repo-config.html b/git-repo-config.html index 3d36447f..79aeedb6 100644 --- a/git-repo-config.html +++ b/git-repo-config.html @@ -266,43 +266,46 @@ git-repo-config(1) Manual Page
git-repo-config - - Get and set options in .git/config. + Get and set options in .git/config
git-repo-config [type] name [value [value_regex]] +
You can query/set/replace/unset options with this command. The name is actually the section and the key separated by a dot, and the value will be escaped.
-If you want to set/unset an option which can occur on multiple lines, you -should provide a POSIX regex for the value. If you want to handle the lines -not matching the regex, just prepend a single exclamation mark in front -(see EXAMPLES).
+If you want to set/unset an option which can occur on multiple +lines, a POSIX regexp value_regex needs to be given. Only the +existing values that match the regexp are updated or unset. If +you want to handle the lines that do not match the regex, just +prepend a single exclamation mark in front (see EXAMPLES).
The type specifier can be either --int or --bool, which will make git-repo-config ensure that the variable(s) are of the given type and convert the value to the canonical form (simple decimal number for int, a "true" or "false" string for bool). If no type specifier is passed, no checks or transformations are performed on the value.
-This command will fail if
+This command will fail if:
-.git/config is invalid, +The .git/config file is invalid,
-.git/config can not be written to, +Can not write to .git/config,
Default behaviour is to replace at most one line. This replaces - all lines matching the key (and optionally the value_regex) + all lines matching the key (and optionally the value_regex).
+ Like --get-all, but interprets the name as a regular expression. +
++ List all variables set in .git/config. +
+; Proxy settings -[proxy] - command="ssh" for "ssh://kernel.org/" - command="proxy-command" for kernel.org - command="myprotocol-command" for "my://" - command=default-proxy ; for all the rest+[core] + gitproxy="ssh" for "ssh://kernel.org/" + gitproxy="proxy-command" for kernel.org + gitproxy="myprotocol-command" for "my://" + gitproxy=default-proxy ; for all the rest
you can set the filemode to true with
% git repo-config proxy.command '"ssh" for kernel.org' 'for kernel.org$'+
% git repo-config core.gitproxy '"ssh" for kernel.org' 'for kernel.org$'
This makes sure that only the key/value pair for kernel.org is replaced.
To delete the entry for renames, do
@@ -427,7 +446,7 @@ to "ssh".% git repo-config --unset diff.renames
If you want to delete an entry for a multivar (like proxy.command above), +
If you want to delete an entry for a multivar (like core.gitproxy above), you have to provide a regex matching the value of exactly one line.
To query the value for a given key, do
or, to query a multivar:
% git repo-config --get proxy.command "for kernel.org$"+
% git repo-config --get core.gitproxy "for kernel.org$"
If you want to know all the values for a multivar, do:
% git repo-config --get-all proxy.command+
% git repo-config --get-all core.gitproxy
If you like to live dangerous, you can replace all proxy.commands by a +
If you like to live dangerous, you can replace all core.gitproxy by a new one with
% git repo-config --replace-all proxy.command ssh+
% git repo-config --replace-all core.gitproxy ssh
However, if you really only want to replace the line for the default proxy, i.e. the one without a "for …" postfix, do something like this:
% git repo-config proxy.command ssh '! for '+
% git repo-config core.gitproxy ssh '! for '
To actually match only values with an exclamation mark, you have to
% git repo-config section.key value '[!]'
The git configuration file contains a number of variables that affect +the git commands behaviour. They can be used by both the git plumbing +and the porcelains. The variables are divided to sections, where +in the fully qualified variable name the variable itself is the last +dot-separated segment and the section name is everything before the last +dot. The variable names are case-insensitive and only alphanumeric +characters are allowed. Some variables may appear multiple times.
+The syntax is fairly flexible and permissive; whitespaces are mostly +ignored. The # and ; characters begin commends to the end of line, +blank lines are ignored, lines containing strings enclosed in square +brackets start sections and all the other lines are recognized +as setting variables, in the form name = value. If there is no equal +sign on the line, the entire line is taken as name and the variable +is recognized as boolean "true". String values may be entirely or partially +enclosed in double quotes; some variables may require special value format.
+# Core variables +[core] + ; Don't trust file modes + filemode = false+
# Our diff algorithm +[diff] + external = "/usr/local/bin/gnu-diff -u" + renames = true+
Note that this list is non-comprehensive and not necessarily complete. +For command-specific variables, you will find more detailed description +in the appropriate manual page. You will find description of non-core +porcelain configuration variables in the respective porcelain documentation.
++ If false, the executable bit differences between the index and + the working copy are ignored; useful on broken filesystems like FAT. + See git-update-index(1). True by default. +
++ 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 and is matched in the given order; + the first match wins. +
+Can be overriden by the 'GIT_PROXY_COMMAND' environment variable +(which always applies universally, without the special "for" +handling).+
+ The working copy files are assumed to stay unchanged until you + mark them otherwise manually - Git will not detect the file changes + by lstat() calls. This is useful on systems where those are very + slow, such as Microsoft Windows. See git-update-index(1). + False by default. +
++ Instead of the default "symref" format for HEAD + and other symbolic reference files, use symbolic links. + This is sometimes needed to work with old scripts that + expect HEAD to be a symbolic link. +
++ Internal variable identifying the repository format and layout + version. +
++ If true, the repository is made shareable between several users + in a group (making sure all the files and objects are group-writable). + See git-init-db(1). False by default. +
++ If true, git will warn you if the ref name you passed it is ambiguous + and might match multiple refs in the .git/refs/ tree. True by default. +
++ Tells git-apply how to handle whitespaces, in the same way + as the --whitespace option. See git-apply(1). +
++ The number of files to consider when performing the copy/rename + detection; equivalent to the git diff option -l. +
++ Additional email headers to include in a patch to be submitted + by mail. See git-format-patch(1). +
++ Whether the cvs pserver interface is enabled for this repository. + See git-cvsserver(1). +
++ Path to a log file where the cvs pserver interface well… logs + various stuff. See git-cvsserver(1). +
++ Whether to verify the SSL certificate when fetching or pushing + over HTTPS. Can be overriden by the GIT_SSL_NO_VERIFY environment + variable. +
++ File containing the SSL certificate when fetching or pushing + over HTTPS. Can be overriden by the GIT_SSL_CERT environment + variable. +
++ File containing the SSL private key when fetching or pushing + over HTTPS. Can be overriden by the GIT_SSL_KEY environment + variable. +
++ File containing the certificates to verify the peer with when + fetching or pushing over HTTPS. Can be overriden by the + GIT_SSL_CAINFO environment variable. +
++ Path containing files with the CA certificates to verify the peer + with when fetching or pushing over HTTPS. Can be overriden + by the GIT_SSL_CAPATH environment variable. +
++ How many HTTP requests to launch in parallel. Can be overriden + by the GIT_HTTP_MAX_REQUESTS environment variable. Default is 5. +
++ If the HTTP transfer speed is less than http.lowSpeedLimit + for longer than http.lowSpeedTime seconds, the transfer is aborted. + Can be overriden by the GIT_HTTP_LOW_SPEED_LIMIT and + GIT_HTTP_LOW_SPEED_TIME environment variables. +
++ 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 (and possibly at other places in the future or in other + porcelains). See e.g. git-mailinfo(1). Defaults to utf-8. +
++ Whether to include summaries of merged commits in newly created + merge commit messages. False by default. +
++ The default merge strategy to use when pulling multiple branches + at once. +
++ The default merge strategy to use when pulling a single branch. +
++ The default git-diff-tree(1) arguments to be used + for git-show(1). +
++ The default set of branches for git-show-branch(1). + See git-show-branch(1). +
++ Your email address to be recorded in any newly created commits. + Can be overriden by the GIT_AUTHOR_EMAIL and GIT_COMMITTER_EMAIL + environment variables. See git-commit-tree(1). +
++ Your full name to be recorded in any newly created commits. + Can be overriden by the GIT_AUTHOR_NAME and GIT_COMMITTER_NAME + environment variables. See git-commit-tree(1). +
++ The default git-diff-tree(1) arguments to be used + for git-whatchanged(1). +
++ The configuration variables in the imap section are described + in git-imap-send(1). +
+Written by Johannes Schindelin <Johannes.Schindelin@gmx.de>
Documentation by Johannes Schindelin.
+Documentation by Johannes Schindelin, Petr Baudis and the git-list <git@vger.kernel.org>.