From: Jeff King Date: Fri, 26 Feb 2016 07:59:48 GMT Subject: Re: Fwd: git clone does not respect command line options Message-ID: <20160226075948.GA26994@sigill.intra.peff.net> In-Reply-To: On Fri, Feb 26, 2016 at 01:16:39PM +0530, Guilherme wrote: > Is there any documentation on which variables are muli-valued? There's no central registry. It's often mentioned in the documentation for a particular config option, but it looks like the credential.* config is not very clear about this. There aren't very many of them. I think credential.* is one set. The remote.*.fetch/push refspecs are another. I don't think there are any others used by git itself, but I may just be forgetting them. > git -c credential.helper="store --file=creds" config --get credential.helper > > only returns one value. > > How can i even know if there are multiple set. I mean someone might > have just created an extra credential.helper in `--system` that I'm > not expecting... Right. The "git-config" program doesn't know about the semantics of particular values (remember that in the early days, there were many porcelains which built on top of git, and they could all store their own config). Using "--get" implements "last one wins" semantics, which is what most config variables want. You can use "--get-all" to see all instances of a multi-valued variable. The usability on all of this is obviously pretty horrible, but it's hard to change at this point without breaking backwards compatibility. -Peff