blob: 05982460a9ecf99f458c9392d2a340107a5089f3 [file] [log] [blame]
'\" t
.\" Title: git-credential-store
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 11/21/2018
.\" Manual: Git Manual
.\" Source: Git 2.20.0.rc1
.\" Language: English
.\"
.TH "GIT\-CREDENTIAL\-STO" "1" "11/21/2018" "Git 2\&.20\&.0\&.rc1" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-credential-store \- Helper to store credentials on disk
.SH "SYNOPSIS"
.sp
.nf
git config credential\&.helper \(aqstore [<options>]\(aq
.fi
.sp
.SH "DESCRIPTION"
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBNote\fR
.ps -1
.br
.sp
Using this helper will store your passwords unencrypted on disk, protected only by filesystem permissions\&. If this is not an acceptable security tradeoff, try \fBgit-credential-cache\fR(1), or find a helper that integrates with secure storage provided by your operating system\&.
.sp .5v
.RE
.sp
This command stores credentials indefinitely on disk for use by future Git programs\&.
.sp
You probably don\(cqt want to invoke this command directly; it is meant to be used as a credential helper by other parts of git\&. See \fBgitcredentials\fR(7) or \fBEXAMPLES\fR below\&.
.SH "OPTIONS"
.PP
\-\-file=<path>
.RS 4
Use
\fB<path>\fR
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
\fB~/\&.git\-credentials\fR
and
\fB$XDG_CONFIG_HOME/git/credentials\fR, and credentials will be written to
\fB~/\&.git\-credentials\fR
if it exists, or
\fB$XDG_CONFIG_HOME/git/credentials\fR
if it exists and the former does not\&. See also
the section called \(lqFILES\(rq\&.
.RE
.SH "FILES"
.sp
If not set explicitly with \fB\-\-file\fR, there are two files where git\-credential\-store will search for credentials in order of precedence:
.PP
~/\&.git\-credentials
.RS 4
User\-specific credentials file\&.
.RE
.PP
$XDG_CONFIG_HOME/git/credentials
.RS 4
Second user\-specific credentials file\&. If
\fI$XDG_CONFIG_HOME\fR
is not set or empty,
\fB$HOME/\&.config/git/credentials\fR
will be used\&. Any credentials stored in this file will not be used if
\fB~/\&.git\-credentials\fR
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\&.
.RE
.sp
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\&.
.sp
Credential storage will by default write to the first existing file in the list\&. If none of these files exist, \fB~/\&.git\-credentials\fR will be created and written to\&.
.sp
When erasing credentials, matching credentials will be erased from all files\&.
.SH "EXAMPLES"
.sp
The point of this helper is to reduce the number of times you must type your username or password\&. For example:
.sp
.if n \{\
.RS 4
.\}
.nf
$ 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]
.fi
.if n \{\
.RE
.\}
.sp
.SH "STORAGE FORMAT"
.sp
The \fB\&.git\-credentials\fR file is stored in plaintext\&. Each credential is stored on its own line as a URL like:
.sp
.if n \{\
.RS 4
.\}
.nf
https://user:pass@example\&.com
.fi
.if n \{\
.RE
.\}
.sp
.sp
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 \fBgitcredentials\fR(7) for more information\&.
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite