Config -- from least specific to most specific, is stored in these locations:
[install Location]/etc/gitconfig
-- "system-wide" config (for me it is here:C:\Program Files\Git\etc\gitconfig
, ymmv)~/.gitconfig
-- known as "global" config, actually config for the current user, i.e.$home\.gitconfig
(a case of scope-exaggeration).git/config
-- config for the current repo
Get all config:
git config --list
Get the user name:
git config --get user.name
git config --get user.email
Set the user name:
For the current system (i.e. machine) regardless of who is using the machine:
git config --system user.name "John Doe"
The setting above will be overridden by any of those below:
For the current user (i.e. "global") regardless of which repo we are in.
git config --global user.name "John Doe"
The setting above will be overridden by the one below:
For just the current repo:
git config user.name "John Doe"
For a specific file (I haven't used this one)
git config --file FILE_Name user.name "John Doe"
(Where FILE_Name
is the name of the actual file)
Also -- for a given repository, to set the username, you can go into the .git\config
file and add the username plus an '@' before the url in the 'remote origin' value, e.g.
Change:
[remote "origin"]
url = https://github.com/secretGeek/til.git
To:
[remote "origin"]
url = https://[email protected]/secretGeek/til.git
I've only tried that for bitbucket and github. It seems to work, in the sense that when I go to push a commit, I no longer need to enter my user name. All of the other techniques worked in the sense that they were stored, but they were not automatically applied when I went to push to a remote location.
To globally assume a username of secretGeek when pushing to github:
git config --global url."https://[email protected]".insteadOf "https://github.com"
To cache passwords (on windows)
git config --global credential.helper wincred
This stores your credentials in the Windows credential store which has a Control Panel interface where you can delete or edit your stored credentials. (Under Control Panel\User Accounts\Credential Manager)
(from https://stackoverflow.com/questions/15381198/remove-credentials-from-git)
And to stop caching password on windows:
git config --system --unset credential.helper
Or on linux:
git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=3600'