2011-12-10 18:34:44 +08:00
|
|
|
git-credential-store(1)
|
|
|
|
=======================
|
|
|
|
|
|
|
|
NAME
|
|
|
|
----
|
2012-08-09 02:34:49 +08:00
|
|
|
git-credential-store - Helper to store credentials on disk
|
2011-12-10 18:34:44 +08:00
|
|
|
|
|
|
|
SYNOPSIS
|
|
|
|
--------
|
|
|
|
-------------------
|
|
|
|
git config credential.helper 'store [options]'
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
-----------
|
|
|
|
|
|
|
|
NOTE: Using this helper will store your passwords unencrypted on disk,
|
|
|
|
protected only by filesystem permissions. If this is not an acceptable
|
|
|
|
security tradeoff, try linkgit:git-credential-cache[1], or find a helper
|
|
|
|
that integrates with secure storage provided by your operating system.
|
|
|
|
|
|
|
|
This command stores credentials indefinitely on disk for use by future
|
2013-01-22 03:17:53 +08:00
|
|
|
Git programs.
|
2011-12-10 18:34:44 +08:00
|
|
|
|
|
|
|
You probably don't want to invoke this command directly; it is meant to
|
|
|
|
be used as a credential helper by other parts of git. See
|
|
|
|
linkgit:gitcredentials[7] or `EXAMPLES` below.
|
|
|
|
|
|
|
|
OPTIONS
|
|
|
|
-------
|
|
|
|
|
2014-11-06 15:40:32 +08:00
|
|
|
--file=<path>::
|
2011-12-10 18:34:44 +08:00
|
|
|
|
git-credential-store: support XDG_CONFIG_HOME
Add $XDG_CONFIG_HOME/git/credentials to the default credential search
path of git-credential-store. This allows git-credential-store to
support user-specific configuration files in accordance with the XDG
base directory specification[1].
[1] http://standards.freedesktop.org/basedir-spec/basedir-spec-0.7.html
~/.git-credentials has a higher precedence than
$XDG_CONFIG_HOME/git/credentials when looking up credentials. This
means that if any duplicate matching credentials are found in the xdg
file (due to ~/.git-credentials being updated by old versions of git or
outdated tools), they will not be used at all. This is to give the user
some leeway in switching to old versions of git while keeping the xdg
directory. This is consistent with the behavior of git-config.
However, the higher precedence of ~/.git-credentials means that as long
as ~/.git-credentials exist, all credentials will be written to the
~/.git-credentials file even if the user has an xdg file as having a
~/.git-credentials file indicates that the user wants to preserve
backwards-compatibility. This is also consistent with the behavior of
git-config.
To make this precedence explicit in docs/git-credential-store, add a new
section FILES that lists out the credential file paths in their order of
precedence, and explain how the ordering affects the lookup, storage and
erase operations.
Also, update the documentation for --file to briefly explain the
operations on multiple files if the --file option is not provided.
Since the xdg file will not be used unless it actually exists, to
prevent the situation where some credentials are present in the xdg file
while some are present in the home file, users are recommended to not
create the xdg file if they require compatibility with old versions of
git or outdated tools. Note, though, that "erase" can be used to
explicitly erase matching credentials from all files.
Helped-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Helped-by: Junio C Hamano <gitster@pobox.com>
Helped-by: Jeff King <peff@peff.net>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Paul Tan <pyokagan@gmail.com>
Reviewed-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-03-24 13:20:28 +08:00
|
|
|
Use `<path>` to lookup and store credentials. The file will have its
|
2011-12-10 18:34:44 +08:00
|
|
|
filesystem permissions set to prevent other users on the system
|
|
|
|
from reading it, but will not be encrypted or otherwise
|
git-credential-store: support XDG_CONFIG_HOME
Add $XDG_CONFIG_HOME/git/credentials to the default credential search
path of git-credential-store. This allows git-credential-store to
support user-specific configuration files in accordance with the XDG
base directory specification[1].
[1] http://standards.freedesktop.org/basedir-spec/basedir-spec-0.7.html
~/.git-credentials has a higher precedence than
$XDG_CONFIG_HOME/git/credentials when looking up credentials. This
means that if any duplicate matching credentials are found in the xdg
file (due to ~/.git-credentials being updated by old versions of git or
outdated tools), they will not be used at all. This is to give the user
some leeway in switching to old versions of git while keeping the xdg
directory. This is consistent with the behavior of git-config.
However, the higher precedence of ~/.git-credentials means that as long
as ~/.git-credentials exist, all credentials will be written to the
~/.git-credentials file even if the user has an xdg file as having a
~/.git-credentials file indicates that the user wants to preserve
backwards-compatibility. This is also consistent with the behavior of
git-config.
To make this precedence explicit in docs/git-credential-store, add a new
section FILES that lists out the credential file paths in their order of
precedence, and explain how the ordering affects the lookup, storage and
erase operations.
Also, update the documentation for --file to briefly explain the
operations on multiple files if the --file option is not provided.
Since the xdg file will not be used unless it actually exists, to
prevent the situation where some credentials are present in the xdg file
while some are present in the home file, users are recommended to not
create the xdg file if they require compatibility with old versions of
git or outdated tools. Note, though, that "erase" can be used to
explicitly erase matching credentials from all files.
Helped-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Helped-by: Junio C Hamano <gitster@pobox.com>
Helped-by: Jeff King <peff@peff.net>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Paul Tan <pyokagan@gmail.com>
Reviewed-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-03-24 13:20:28 +08:00
|
|
|
protected. If not specified, credentials will be searched for from
|
|
|
|
`~/.git-credentials` and `$XDG_CONFIG_HOME/git/credentials`, and
|
|
|
|
credentials will be written to `~/.git-credentials` if it exists, or
|
|
|
|
`$XDG_CONFIG_HOME/git/credentials` if it exists and the former does
|
|
|
|
not. See also <<FILES>>.
|
|
|
|
|
|
|
|
[[FILES]]
|
|
|
|
FILES
|
|
|
|
-----
|
|
|
|
|
2016-06-28 19:40:11 +08:00
|
|
|
If not set explicitly with `--file`, there are two files where
|
git-credential-store: support XDG_CONFIG_HOME
Add $XDG_CONFIG_HOME/git/credentials to the default credential search
path of git-credential-store. This allows git-credential-store to
support user-specific configuration files in accordance with the XDG
base directory specification[1].
[1] http://standards.freedesktop.org/basedir-spec/basedir-spec-0.7.html
~/.git-credentials has a higher precedence than
$XDG_CONFIG_HOME/git/credentials when looking up credentials. This
means that if any duplicate matching credentials are found in the xdg
file (due to ~/.git-credentials being updated by old versions of git or
outdated tools), they will not be used at all. This is to give the user
some leeway in switching to old versions of git while keeping the xdg
directory. This is consistent with the behavior of git-config.
However, the higher precedence of ~/.git-credentials means that as long
as ~/.git-credentials exist, all credentials will be written to the
~/.git-credentials file even if the user has an xdg file as having a
~/.git-credentials file indicates that the user wants to preserve
backwards-compatibility. This is also consistent with the behavior of
git-config.
To make this precedence explicit in docs/git-credential-store, add a new
section FILES that lists out the credential file paths in their order of
precedence, and explain how the ordering affects the lookup, storage and
erase operations.
Also, update the documentation for --file to briefly explain the
operations on multiple files if the --file option is not provided.
Since the xdg file will not be used unless it actually exists, to
prevent the situation where some credentials are present in the xdg file
while some are present in the home file, users are recommended to not
create the xdg file if they require compatibility with old versions of
git or outdated tools. Note, though, that "erase" can be used to
explicitly erase matching credentials from all files.
Helped-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Helped-by: Junio C Hamano <gitster@pobox.com>
Helped-by: Jeff King <peff@peff.net>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Paul Tan <pyokagan@gmail.com>
Reviewed-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-03-24 13:20:28 +08:00
|
|
|
git-credential-store will search for credentials in order of precedence:
|
|
|
|
|
|
|
|
~/.git-credentials::
|
|
|
|
User-specific credentials file.
|
|
|
|
|
|
|
|
$XDG_CONFIG_HOME/git/credentials::
|
|
|
|
Second user-specific credentials file. If '$XDG_CONFIG_HOME' is not set
|
|
|
|
or empty, `$HOME/.config/git/credentials` will be used. Any credentials
|
|
|
|
stored in this file will not be used if `~/.git-credentials` has a
|
|
|
|
matching credential as well. It is a good idea not to create this file
|
|
|
|
if you sometimes use older versions of Git that do not support it.
|
|
|
|
|
|
|
|
For credential lookups, the files are read in the order given above, with the
|
|
|
|
first matching credential found taking precedence over credentials found in
|
|
|
|
files further down the list.
|
|
|
|
|
|
|
|
Credential storage will by default write to the first existing file in the
|
|
|
|
list. If none of these files exist, `~/.git-credentials` will be created and
|
|
|
|
written to.
|
|
|
|
|
|
|
|
When erasing credentials, matching credentials will be erased from all files.
|
2011-12-10 18:34:44 +08:00
|
|
|
|
|
|
|
EXAMPLES
|
|
|
|
--------
|
|
|
|
|
|
|
|
The point of this helper is to reduce the number of times you must type
|
|
|
|
your username or password. For example:
|
|
|
|
|
|
|
|
------------------------------------------
|
|
|
|
$ git config credential.helper store
|
|
|
|
$ git push http://example.com/repo.git
|
|
|
|
Username: <type your username>
|
|
|
|
Password: <type your password>
|
|
|
|
|
|
|
|
[several days later]
|
|
|
|
$ git push http://example.com/repo.git
|
|
|
|
[your credentials are used automatically]
|
|
|
|
------------------------------------------
|
|
|
|
|
|
|
|
STORAGE FORMAT
|
|
|
|
--------------
|
|
|
|
|
|
|
|
The `.git-credentials` file is stored in plaintext. Each credential is
|
|
|
|
stored on its own line as a URL like:
|
|
|
|
|
|
|
|
------------------------------
|
|
|
|
https://user:pass@example.com
|
|
|
|
------------------------------
|
|
|
|
|
2013-01-22 03:17:53 +08:00
|
|
|
When Git needs authentication for a particular URL context,
|
2011-12-10 18:34:44 +08:00
|
|
|
credential-store will consider that context a pattern to match against
|
|
|
|
each entry in the credentials file. If the protocol, hostname, and
|
|
|
|
username (if we already have one) match, then the password is returned
|
2013-01-22 03:17:53 +08:00
|
|
|
to Git. See the discussion of configuration in linkgit:gitcredentials[7]
|
2011-12-10 18:34:44 +08:00
|
|
|
for more information.
|
|
|
|
|
|
|
|
GIT
|
|
|
|
---
|
|
|
|
Part of the linkgit:git[1] suite
|