─[$] cat ~/.gitconfig
[user]
name = Shirish Agarwal
email = xxxx@xxxx.xxx
[core]
editor = leafpad
excludesfiles = /home/shirish/.gitignore
gitproxy = \"ssh\" for gitorious.org
[merge]
tool = meld
[push]
default = simple
[color]
ui = true
status = auto
branch = auto
이제 브라우저에서 자격 증명을 조회 할 필요가 없을 때마다 github, gitlab 및 gitorious에 대한 자식 자격 증명을 넣고 싶습니다. 이 작업을 자동화하려면 어떻게해야합니까?
나는 zsh를 실행 중이다
답변
SSH 사용
자식 인증을 처리하는 일반적인 방법은 SSH 인증을 위임하는 것입니다. 일반적으로 원격 저장소 ( 예 : GitHub 등 ) 에서 SSH 공개 키를 설정 한 다음 인증이 필요할 때마다이 키를 사용합니다. 당신도 수동으로 데스크탑 환경에 의해 처리 또는 물론 주요 에이전트를 사용 ssh-agent
하고 ssh-add
.
사용자 이름을 지정하지 않으려면 SSH에서 사용자 이름을 구성 할 수도 있습니다 ~/.ssh/config
. 예를 들어 나는
Host git.opendaylight.org
User skitt
그런 다음 사용하여 복제 할 수 있습니다
git clone ssh://git.opendaylight.org:29418/aaa
(사용자 이름이 없으면주의하십시오).
사용 gitcredentials
SSH 접근 방식이 적용되지 않는 경우 ( 예 : HTTPS를 통해 액세스 한 리포지토리를 사용하는 경우) git에는 gitcredentials
(및 일반적으로 git-credential-store
)를 사용하여 자격 증명을 처리하는 고유 한 방법이 있습니다. 당신은 사용하여 사용자 이름을 지정
git config credential.${remote}.username yourusername
자격 증명 도우미를 사용하여
git config credential.helper store
(어디서나이 --global
설정을 사용하려면 지정 하십시오).
그런 다음 리포지토리에 처음 액세스하면 git에서 암호를 묻고 기본적으로에 저장됩니다 ~/.git-credentials
. 이후에 저장소에 액세스하면 묻지 않고 저장된 비밀번호를 사용합니다.
답변
나중에 이것을 찾는 사람들을 위해-나는 이것에 어려움을 겪고 마침내 그것을 작동시켰다.
https / credentials.helper / 우분투
- 전역 적으로 설정 해제 :
git config --global --unset credentials.helper
- 로컬로 설정 해제 : (각 리포지토리에서)
git config --unset credential.helper
-
각 리포지토리에 대한 자격 증명 파일 만들기 : (각 리포지토리 내부)
git config credential.helper 'store --file ~/.git_reponame_credentials'
그것이 최선의 방법이거나 유일한 방법이라고 말하지는 않지만 몇 번의 실망스러운 시간 후에 나를 위해 일했습니다.