다른 자식 저장소에 대한 사용자 이름과 비밀번호를 설정하는 방법은 무엇입니까?


17
─[$] 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를 실행 중이다

답변:


21

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. 이후에 저장소에 액세스하면 묻지 않고 저장된 비밀번호를 사용합니다.


1
당신에 대해 조금 자세히 설명 할 수 credential.${remote}credential.helper. 내가 처음으로 읽었을 때 지적 할 수있는 문서가 있습니까?
shirish

내 답변의 맨 페이지에 연결되어 있습니다. ${remote}복제하려는 URI의 프로토콜 및 호스트 이름 부분으로, helper도우미 프로그램을 가리 킵니다.
Stephen Kitt

1
이 주제에 대한 Pro Git 장도 있습니다.
Stephen Kitt

7

나중에 이것을 찾는 사람들을 위해-나는 이것에 어려움을 겪고 마침내 그것을 작동시켰다.

https / credentials.helper / 우분투

  1. 전역 적으로 설정 해제 :
    git config --global --unset credentials.helper
  2. 로컬로 설정 해제 : (각 리포지토리에서) git config --unset credential.helper
  3. 각 리포지토리에 대한 자격 증명 파일 만들기 : (각 리포지토리 내부)

    git config credential.helper 'store --file ~/.git_reponame_credentials'
    

그것이 최선의 방법이거나 유일한 방법이라고 말하지는 않지만 몇 번의 실망스러운 시간 후에 나를 위해 일했습니다.


stephen kitt이 위에서 공유 한 것과 비슷한 것 같습니다.
shirish

2
@ shirish는 실제로 세 번째 요점은 내가 필요한 것입니다-파일 위치를 지정하는 옵션.
Mārtiņš Briedis

@ 시리 쉬; 또한 Kitts 지침은 자격 증명을 설정하지 않도록 지정하지 않았습니다. 자격 증명을 이미 전역으로 설정했기 때문에 중요한 구성 요소였습니다.
SteveJ

모든 git repos가 아닌 것처럼이 문제가 발생했습니다. 당신은 같은 소스 / 상점에서 얻을 것입니다. 두 번째는 실제로 작동하는 것이 더 좋지만 훨씬 더 좌절입니다. 공유해 주셔서 감사합니다. @SteveJ
shirish
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.