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