나는 이 주제 에 대한 그의 기사 ( Set Up Git Identities 참조)에서 Micah Henning의 방식을 매우 좋아합니다 . 그가 생성 / 복제 된 각 저장소에 ID를 적용하고 강제한다는 사실은 매번 설정하는 것을 잊지 않는 좋은 방법입니다.
기본 git 구성
git에서 현재 사용자 구성을 설정 해제하십시오.
$ git config --global --unset user.name
$ git config --global --unset user.email
$ git config --global --unset user.signingkey
각각의 새 로컬 저장소에서 ID 구성을 강제하십시오.
$ git config --global user.useConfigOnly true
identity
명령에 대한 Git 별칭을 만듭니다 . 나중에 사용할 것입니다.
$ git config --global alias.identity '! git config user.name "$(git config user.$1.name)"; git config user.email "$(git config user.$1.email)"; git config user.signingkey "$(git config user.$1.signingkey)"; :'
신원 생성
GPG로 ID를 만듭니다 ( 시스템에있는 항목을 사용 gpg
하거나 사용 gpg2
). 사용하려는 각 ID에 대해 다음 단계를 반복합니다.
참고 : 생성 된 비밀 키 [keyid]
의 식별자 는 다음과 같습니다 . 여기에 예 :
sec rsa4096/8A5C011E4CE081A5 2020-06-09 [SC] [expires: 2021-06-09]
CCC470AE787C057557F421488C4C951E4CE081A5
uid [ultimate] Your Name <youremail@domain>
ssb rsa4096/1EA965889861C1C0 2020-06-09 [E] [expires: 2021-06-09]
다음 8A5C011E4CE081A5
부분 은 키 sec rsa4096/
의 식별자 입니다.
$ gpg --full-gen-key
$ gpg --list-secret-keys --keyid-format LONG <youremail@domain>
$ gpg --armor --export [keyid]
공개 키 블록을 복사하여 GitHub / GitProviderOfChoice 설정에 GPG 키로 추가합니다.
Git 구성에 ID를 추가합니다. 또한 추가하려는 각 ID에 대해이 작업을 반복하십시오.
참고 : 여기 내가 사용 gitlab
하는 이름을 내 정체성을하지만, 귀하의 질문에서 아무것도, 예 될 수 있습니다 gitolite
또는 github
, work
등
$ git config --global user.gitlab.name "Your Name"
$ git config --global user.gitlab.email "youremail@domain"
$ git config --global user.gitlab.signingkey [keyid]
저장소에 대한 ID 설정
새 저장소에 ID가 연결되어 있지 않으면 커밋시 오류가 표시되어 설정하라는 메시지가 표시됩니다.
*** Please tell me who you are.
## parts of message skipped ##
fatal: no email was given and auto-detection is disabled
새 저장소에서 원하는 ID를 지정하십시오.
$ git identity gitlab
이제 gitlab ID 로 커밋 할 준비가되었습니다 .