I'm working with Git pushing changes to a repository shared over HTTP / WebDAV, and Git prompts for a password for every operation that accesses the HTTP remote. Is there any way to make Git cache the password / have the remote server not prompt me?
The remote webserver should be an Apache and could possibly be reconfigured if necessary.
You can avoid being prompted for your password by configuring Git to cache your credentials for you. Once you've configured credential caching, Git automatically uses your cached personal access token when you pull or push a repository using HTTPS.
There are currently three options for storing credentials that Git Credential Manager Core (GCM Core) manages on Linux platforms: freedesktop.org Secret Service API. GPG/pass compatible files. Plaintext files.
When you use https for Git pull & push, just configure remote. origin. url for your project, to avoid input username (or/and password) every time you push. Optional, the username to use when needed.
The way is to use ~/.netrc as outlined in step 3 of this Git documentation:
Then, add the following to your $HOME/.netrc (you can do without, but will be asked to input your password a lot of times):
machine <servername> login <username> password <password>
...and set permissions:
chmod 600 ~/.netrc
As of git 1.7.9, it seems the way to go would be the native credential helper API. Git comes with a plaintext credential store or a less convenient but more secure temporary credential cache. It's also possible to use third-party credential helpers. So far I'm aware of a helper for the native Windows Credential Store, and one that integrates with the OS X keychain. (The Git build shipped by Homebrew has a binary for it, as might other OS X Git distributions. Github also provides a standalone binary.)
Generally, it should be sufficient to set up the a credential helper once:
git config --global credential.helper wincred
Or instead of wincred
, use whichever helper is appropriate for your platform. (If the name of the helper executable is git-credential-wincred
, the value you set the option to will be wincred
, etc.)
The credential helpers also support the need to have separate sets of credentials for different repositories on the same host.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With