git-credential-store(1)
=======================

NAME
----
git-credential-store - Helper to store credentials on disk

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
Git programs.

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
-------

--file=<path>::

	Use `<path>` to lookup and store credentials. The file will have its
	filesystem permissions set to prevent other users on the system
	from reading it, but will not be encrypted or otherwise
	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
-----

If not set explicitly with `--file`, there are two files where
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.

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
------------------------------

When Git needs authentication for a particular URL context,
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
to Git. See the discussion of configuration in linkgit:gitcredentials[7]
for more information.

GIT
---
Part of the linkgit:git[1] suite
