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
