하나의 명령 github 계정 전환
이 솔루션은 단일 자식 별칭의 형태를 취합니다. 일단 실행되면 현재 프로젝트 사용자는 다른 계정에 연결됩니다
ssh 키 생성
ssh-keygen -t rsa -C "rinquin.arnaud@gmail.com" -f '/Users/arnaudrinquin/.ssh/id_rsa'
[...]
ssh-keygen -t rsa -C "arnaud.rinquin@wopata.com" -f '/Users/arnaudrinquin/.ssh/id_rsa_pro'
GitHub / Bitbucket 계정에 연결
- 기본 공개 키 복사
pbcopy < ~/.ssh/id_rsa.pub
- GitHub 계정에 로그인
add SSH key
github 페이지에 키를 붙여 넣습니다
- 다른 공개 키 복사
pbcopy < ~/.ssh/id_rsa_pro.pub
- 다른 모든 계정에 대해 2-4 단계 반복 및 조정
1 단계. 자동 ssh 키 전환.
에 ssh
따라 특정 암호화 키를 사용하도록 보내도록 구성 할 수 있습니다 host
. 좋은 점은 동일한 별칭을 여러 개 가질 수 있다는 것입니다hostname
.
이 예제 ~/.ssh/config
파일을보십시오 :
# Default GitHub
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
# Professional github alias
Host github_pro
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_pro
자식 원격 구성
이제 변경하여 자식 리모컨에서 이러한 별칭을 사용할 수 있습니다 git@github.com
로 git@github_pro
.
기존 프로젝트를 원격으로 변경하거나 (같은 것을 사용하여 git remote set-url origin git@github_pro:foo/bar.git
) 복제 할 때 직접 조정할 수 있습니다.
git clone git@github.com:ArnaudRinquin/atom-zentabs.git
별명을 사용하면 다음과 같습니다.
git clone git@github_pro:ArnaudRinquin/atom-zentabs.git
2 단계. git user.email 변경
힘내 구성 설정은 전역 또는 프로젝트별로 가능합니다. 이 경우 프로젝트 당 설정을 원합니다. 변경하기가 매우 쉽습니다.
git config user.email 'arnaud.rinquin@wopata.com'
이것은 쉽지만 개발자에게는 오랜 시간이 걸립니다. 이를 위해 매우 간단한 git alias를 작성할 수 있습니다.
~/.gitconfig
파일 에 추가하겠습니다 .
[user]
name = Arnaud Rinquin
email = rinquin.arnaud@gmail.com
...
[alias]
setpromail = "config user.email 'arnaud.rinquin@wopata.com'"
그럼 우리가해야 할 일은 git setpromail
이 프로젝트에 대해서만 전자 메일을 변경하면됩니다.
3 단계. 하나의 명령 스위치를 사용 하시겠습니까?!
하나의 매개 변수가없는 명령으로 기본 계정에서 지정된 계정으로 전환하는 것이 좋지 않습니까? 확실히 가능합니다. 이 명령에는 두 단계가 있습니다.
- 현재 프로젝트 리모컨을 선택한 별명으로 변경
- 현재 프로젝트 사용자를 변경하십시오.
우리는 이미 두 번째 단계를위한 하나의 명령 솔루션을 가지고 있지만 첫 번째 단계는 더 어렵습니다. 하나의 명령 원격 호스트 변경
다음은 다른 git alias 명령의 형태로 솔루션을 제공합니다 ~/.gitconfig
.
[alias]
changeremotehost = !sh -c \"git remote -v | grep '$1.*fetch' | sed s/..fetch.// | sed s/$1/$2/ | xargs git remote set-url\"
이를 통해 한 호스트에서 다른 호스트 (별명)로 모든 원격을 변경할 수 있습니다. 예를보십시오 :
$ > git remote -v
origin git@github.com:ArnaudRinquin/arnaudrinquin.github.io.git (fetch)
origin git@github.com:ArnaudRinquin/arnaudrinquin.github.io.git (push)
$ > git changeremotehost github.com github_pro
$ > git remote -v
origin git@github_pro:ArnaudRinquin/arnaudrinquin.github.io.git (fetch)
origin git@github_pro:ArnaudRinquin/arnaudrinquin.github.io.git (push)
그들 모두를 결합
이제 두 명령을 하나로 결합하기 만하면됩니다. 이것은 매우 쉽습니다. 비트 버킷 호스트 스위칭도 어떻게 통합하는지 확인하십시오.
[alias]
changeremotehost = !sh -c \"git remote -v | grep '$1.*fetch' | sed s/..fetch.// | sed s/$1/$2/ | xargs git remote set-url\"
setpromail = "config user.email 'arnaud.rinquin@wopata.com'"
gopro = !sh -c \"git changeremotehost github.com github_pro && git changeremotehost bitbucket.com bitbucket_pro && git setpromail\"
소스 링크-튜토리얼