@patthoyts의 높은 답변을 바탕으로 작성 ( https://stackoverflow.com/a/15382950/4401322 ) :
그의 대답은 "local"대 "global"대 "system"구성을 사용하지만 설명하지는 않습니다. 그것들에 대한 공식 자식 문서는 여기에 있습니다. 있고 읽을만한 가치 .
예를 들어, 나는 Linux에 있고 시스템 구성을 사용하지 않으므로 --system
플래그를 사용 하지 않지만 일반적으로 --local
와--global
구성 .
내 유스 케이스는 두 개의 Github 자격 증명이 있습니다. 하나는 업무용이고 다른 하나는 놀이 용입니다.
문제를 해결하는 방법은 다음과 같습니다.
$ cd work
# do and commit work
$ git push origin develop
# Possibly prompted for credentials if I haven't configured my remotes to automate that.
# We're assuming that now I've stored my "work" credentials with git's credential helper.
$ cd ~/play
# do and commit play
$ git push origin develop
remote: Permission to whilei/specs.git denied to whilei.
fatal: unable to access 'https://github.com/workname/specs.git/': The requested URL returned error: 403
# So here's where it goes down:
$ git config --list | grep cred
credential.helper=store # One of these is for _local_
credential.helper=store # And one is for _global_
$ git config --global --unset credential.helper
$ git config --list | grep cred
credential.helper=store # My _local_ config still specifies 'store'
$ git config --unset credential.helper
$ git push origin develop
Username for 'https://github.com': whilei
Password for 'https://whilei@github.com':
Counting objects: 3, done.
Delta compression using up to 12 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 1.10 KiB | 1.10 MiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/whilei/specs.git
b2ca528..f64f065 master -> master
# Now let's turn credential-helping back on:
$ git config --global credential.helper "store"
$ git config credential.helper "store"
$ git config --list | grep cred
credential.helper=store # Put it back the way it was.
credential.helper=store
또한이 문제를 완전히 피할 수있는 방법이 있다는 점도 주목할 가치가 있습니다. 예를 들어, ~/.ssh/config
Github (작업용, 재생 용) 및 관련 사용자 지정 이름이 지정된 원격 호스트에 대한 관련 SSH 키를 사용하여 인증 컨텍스트 지정을 해결할 수도 있습니다.
~/.netrc
파일을?