48

When I do

git push

I get the command prompt like

Username for 'https://github.com':

then I enter my username manually like

Username for 'https://github.com': myusername

and then I hit Enter and I get prompt for my password

Password for 'https://myusername@github.com':

I want the username to be written automatically instead of manually having to type it all the time.

I tried doing it with xdotool but it didn't work out.

I have already done

git config --global user.name myusername
git config --global user.email myemail@gmail.com

but still it always asks for me to type manually

4
  • you know you can store credentials with git, right? Jul 18, 2017 at 13:41
  • 1
    You should set up an SSH key on GitHub and use that instead. Jul 18, 2017 at 13:42
  • @DiegoRoccia yes, mentioned that as well in the question, but it doesn't help. Jul 18, 2017 at 13:45
  • 2
    You can use as git config credential.helper store described here: stackoverflow.com/questions/11403407/… In this case you do not store the password in clear text in the origin URL, but in a file in you profile. (Also not encrypted) Mar 15, 2019 at 17:43

4 Answers 4

54

In Terminal, enter the following to enable credential memory:

$ git config --global credential.helper cache

You may update the default password cache timeout (in seconds):

# This cache timeout is in seconds
$ git config --global credential.helper 'cache --timeout=3600' 

You may also use (but please use the single quotes, else double quotes may break for some characters):

$ git config --global user.name 'your user name'
$ git config --global user.password 'your password'
4
  • 3
    how to cache forever?
    – R. Gurung
    Jul 5, 2020 at 17:16
  • 3
    @R.Gurung Use git config credential.helper 'store in that case, but be aware that this stores your git credentials on disk in plain-text, without any encryption whatsoever. (~/.git-credentials) Dec 8, 2020 at 11:29
  • 3
    Note, the above snippet should be --global flagged as well and close its opening ' such that it reads: git config --global credential.helper 'store' Mar 9, 2021 at 1:29
  • If you want the config to be specific of a website (e.g. only for github.com, but not gitlab), you have to use git config credential.https//github.com ... instead of git config credential.helper ... Jan 19 at 18:17
20

Actually what you did there is setting up the author information, just for the commits. You didn't store the credentials. credentials can be stored in 2 ways:

  1. using the git credential functions: https://git-scm.com/docs/git-credential-store
  2. change the origin url to "https://username:password@github.com".
  3. a third alternative is to use an ssh key (as @StephenKitt said). For github configuration, you can find all needed information in GitHub help page
1
  • 1
    adding username and password to origin url is not good becouse of security reasons but if you feel yourself in secure then this is best path. Mar 18, 2020 at 16:38
9

Copied this from git scm

$ 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]

2

In linux (Ubuntu 18.04) the username / password can be saved in the file ~/.git-credentials, just edit the file to use your new username / password.

The file format is quiet easy to understand and manipulate, each line contains credentials for one user / domain, in the following format:

https://<username>:<password>@github.com
https://<username2>:<password2>@bitbucket.com
...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.