Documentation / git-credential-store.txton commit Merge branch 'mm/keyid-docs' (e13d854)
   1git-credential-store(1)
   2=======================
   3
   4NAME
   5----
   6git-credential-store - Helper to store credentials on disk
   7
   8SYNOPSIS
   9--------
  10-------------------
  11git config credential.helper 'store [options]'
  12-------------------
  13
  14DESCRIPTION
  15-----------
  16
  17NOTE: Using this helper will store your passwords unencrypted on disk,
  18protected only by filesystem permissions. If this is not an acceptable
  19security tradeoff, try linkgit:git-credential-cache[1], or find a helper
  20that integrates with secure storage provided by your operating system.
  21
  22This command stores credentials indefinitely on disk for use by future
  23Git programs.
  24
  25You probably don't want to invoke this command directly; it is meant to
  26be used as a credential helper by other parts of git. See
  27linkgit:gitcredentials[7] or `EXAMPLES` below.
  28
  29OPTIONS
  30-------
  31
  32--file=<path>::
  33
  34        Use `<path>` to lookup and store credentials. The file will have its
  35        filesystem permissions set to prevent other users on the system
  36        from reading it, but will not be encrypted or otherwise
  37        protected. If not specified, credentials will be searched for from
  38        `~/.git-credentials` and `$XDG_CONFIG_HOME/git/credentials`, and
  39        credentials will be written to `~/.git-credentials` if it exists, or
  40        `$XDG_CONFIG_HOME/git/credentials` if it exists and the former does
  41        not. See also <<FILES>>.
  42
  43[[FILES]]
  44FILES
  45-----
  46
  47If not set explicitly with '--file', there are two files where
  48git-credential-store will search for credentials in order of precedence:
  49
  50~/.git-credentials::
  51        User-specific credentials file.
  52
  53$XDG_CONFIG_HOME/git/credentials::
  54        Second user-specific credentials file. If '$XDG_CONFIG_HOME' is not set
  55        or empty, `$HOME/.config/git/credentials` will be used. Any credentials
  56        stored in this file will not be used if `~/.git-credentials` has a
  57        matching credential as well. It is a good idea not to create this file
  58        if you sometimes use older versions of Git that do not support it.
  59
  60For credential lookups, the files are read in the order given above, with the
  61first matching credential found taking precedence over credentials found in
  62files further down the list.
  63
  64Credential storage will by default write to the first existing file in the
  65list. If none of these files exist, `~/.git-credentials` will be created and
  66written to.
  67
  68When erasing credentials, matching credentials will be erased from all files.
  69
  70EXAMPLES
  71--------
  72
  73The point of this helper is to reduce the number of times you must type
  74your username or password. For example:
  75
  76------------------------------------------
  77$ git config credential.helper store
  78$ git push http://example.com/repo.git
  79Username: <type your username>
  80Password: <type your password>
  81
  82[several days later]
  83$ git push http://example.com/repo.git
  84[your credentials are used automatically]
  85------------------------------------------
  86
  87STORAGE FORMAT
  88--------------
  89
  90The `.git-credentials` file is stored in plaintext. Each credential is
  91stored on its own line as a URL like:
  92
  93------------------------------
  94https://user:pass@example.com
  95------------------------------
  96
  97When Git needs authentication for a particular URL context,
  98credential-store will consider that context a pattern to match against
  99each entry in the credentials file.  If the protocol, hostname, and
 100username (if we already have one) match, then the password is returned
 101to Git. See the discussion of configuration in linkgit:gitcredentials[7]
 102for more information.
 103
 104GIT
 105---
 106Part of the linkgit:git[1] suite