Re: [credential.helper] unexpectedly save credential to multiple credential files
- From
- Qi Nark <narcotics726@gmail.com>
- Date
- Nov 11, 2016, 09:12 UTC
- Message-ID
- <CACNr1V_BE_m32sw1D4WnRjRfPHEdKa0mb1jcv6BG0VPATtyPFQ@mail.gmail.com>
- In-Reply-To
- <20161111083649.d5newszupwyq5j6w@sigill.intra.peff.net>
On Fri, Nov 11, 2016 at 4:36 PM, Jeff King <peff@peff.net> wrote:
Show 32 quoted lines
> On Fri, Nov 11, 2016 at 04:10:55PM +0800, Qi Nark wrote: > >> 1. git config --global credential.helper store >> 2. cd to a local repository directory, git config credential.helper >> store --file ./my_cred >> 3. execute some git command which need credential like git ls-remote >> 4. input my username & password, command done. >> >> As the result, **BOTH** the ./my_cred and ~/.git-credentials will save >> the credentials I just input. But, shouldn't the local config override >> the global ones, and only the ./my_cred should save it? > > No, that's the expected result. The set of credential helpers form a > list, and each is run in turn. From "git help credentials": > > If there are multiple instances of the credential.helper configuration > variable, each helper will be tried in turn, and may provide a > username, password, or nothing. Once Git has acquired both a username > and a password, no more helpers will be tried. > > That's talking about lookup, but the same principle applies to storage. > But you may also find the paragraph below helpful: > > If credential.helper is configured to the empty string, this resets > the helper list to empty (so you may override a helper set by a > lower-priority config file by configuring the empty-string helper, > followed by whatever set of helpers you would like). > > Note that the "reset" behavior was introduced in git v2.9.0, so you'll > need at least that version. > > -Peff
Ok, that's fair enough. Thanks for your detailed explanation. The version info is very important to me.
Thank you again.