General discussion

  • Creator
    Topic
  • #3990269

    Is there a way to cache https credentials for pushing commits?

    Locked

    by pileups-punchy0e ·

    Tags: 

    I recently switched to synchronizing my repositories to https:// on GitHub (due to firewall issues), and it asks for a password every time.

    Is there a way to cache the credentials, instead of authenticating every time that git push?

All Comments

  • Author
    Replies
    • #3990353
      Avatar photo

      There’s a Reddit for that.

      by rproffitt ·

      In reply to Is there a way to cache https credentials for pushing commits?

    • #3993596

      Reply To: Is there a way to cache https credentials for pushing commits?

      by jinesh.sethia ·

      In reply to Is there a way to cache https credentials for pushing commits?

      Since Git 1.7.9 (released 2012), there is a neat mechanism in Git to avoid having to type your password all the time for HTTP / HTTPS, called credential helpers.

      You can just use one of the following credential helpers:

      git config –global credential.helper cache

      The credential.helper cache value tells Git to keep your password cached in memory for a particular amount of minutes. The default is 15 minutes, you can set a longer timeout with:

      # Cache for 1 hour
      git config –global credential.helper “cache –timeout=3600”

      # Cache for 1 day
      git config –global credential.helper “cache –timeout=86400”

      # Cache for 1 week
      git config –global credential.helper “cache –timeout=604800”

      You can also store your credentials permanently if so desired, see the other answers below.

      GitHub’s help also suggests that if you’re on Mac OS X and used Homebrew to install Git, you can use the native Mac OS X keystore with:

      git config –global credential.helper osxkeychain

      For Windows, there is a helper called Git Credential Manager for Windows or wincred in msysgit.

      git config –global credential.helper wincred # obsolete

      With Git for Windows 2.7.3+ (March 2016):

      git config –global credential.helper manager

      For Linux, you would use (in 2011) gnome-keyring(or other keyring implementation such as KWallet).

      Nowadays (2020), that would be (on Linux)

      Fedora
      sudo dnf install git-credential-libsecret
      git config –global credential.helper /usr/libexec/git-core/git-credential-libsecret

      Ubuntu
      sudo apt-get install libsecret-1-0 libsecret-1-dev
      cd /usr/share/doc/git/contrib/credential/libsecret
      sudo make
      git config –global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git

    • #3993838

      Reply To: Is there a way to cache https credentials for pushing commits?

      by Ada James ·

      In reply to Is there a way to cache https credentials for pushing commits?

      As I read this post, I found it to be very helpful. Thank you for posting it. I enjoyed reading it.

    • #4001717

      Reply To: Is there a way to cache https credentials for pushing commits?

      by Johnharper2020 ·

      In reply to Is there a way to cache https credentials for pushing commits?

      If you’re cloning GitHub repositories using HTTPS, you can use a credential helper to tell Git to remember your GitHub username and password every time it talks to GitHub. Turn on the credential helper so that Git will save your password in memory for some time. By default, Git will cache your password for 15 minutes.

Viewing 3 reply threads