다른 자식 저장소에 대한 사용자 이름과 비밀번호를 설정하는 방법은 무엇입니까? = xxxx@xxxx.xxx [core] editor

─[$] 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 / 우분투

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

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

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


답변