How to save username and password in Git?
Attention: This method saves the credentials in plaintext on your PC's disk. Everyone on your computer can access it, e.g. malicious NPM modules.
Run
git config --global credential.helper store
then
git pull
provide a username and password and those details will then be remembered later. The credentials are stored in a file on the disk, with the disk permissions of "just user readable/writable" but still in plaintext.
If you want to change the password later
git pull
Will fail, because the password is incorrect, git then removes the offending user+password from the ~/.git-credentials
file, so now re-run
git pull
to provide a new password so it works as earlier.
You can use the git config
to enable credentials storage in git.
git config --global credential.helper store
When running this command, the first time you pull or push from the remote repository, you'll get asked about the username and password.
Afterwards, for consequent communications with the remote repository you don't have to provide the username and password.
The storage format is a .git-credentials
file, stored in plaintext.
Also, you can use other helpers for the git config credential.helper
, namely memory cache:
git config credential.helper cache <timeout>
which takes an optional timeout parameter
,
determining for how long the credentials will be kept in memory. Using the helper, the credentials will never touch the disk and will be erased after the specified timeout. The default
value is 900 seconds (15 minutes).
WARNING : If you use this method, your git account passwords will be saved in plaintext
format, in the global .gitconfig file
, e.g in linux it will be /home/[username]/.gitconfig
If this is undesirable to you, use an ssh key
for your accounts instead.
Recommended and Secure Method: SSH
Create an ssh Github key. Go to github.com -> Settings -> SSH and GPG keys -> New SSH Key. Now save your private key to your computer.
Then, if the private key is saved as id_rsa in the ~/.ssh/ directory, we add it for authentication as such:
ssh-add -K ~/.ssh/id_rsa
A More Secure Method: Caching
We can use git-credential-store to cache our username and password for a time period. Simply enter the following in your CLI (terminal or command prompt):
git config --global credential.helper cache
You can also set the timeout period (in seconds) as such:
git config --global credential.helper 'cache --timeout=3600'
An Even Less Secure Method
Git-credential-store may also be used, but saves passwords in plain text file on your disk as such:
git config credential.helper store
Outdated Answer - Quick and Insecure
This is an insecure method of storing your password in plain text. If someone gains control of your computer, your password will be exposed!
You can set your username and password like this:
git config --global user.name "your username"
git config --global user.password "your password"