git 여러개 원격 저장소 사용해서 프로젝트 한개에 연결하기

낭만개발자·2021년 12월 7일
2

git

목록 보기
3/3

프로젝트 1개, 레파지토리 2개 연결하기

1. 첫번째 원격저장소를 추가

git remote add origin git@github.com:깃헙아이디/레파지토리이름.git
여기서 origin 위치의 의미는 저장할곳의 별명을 origin으로 하겠다는 뜻이다.
그래서 아무생각없이 git push origin master 라는 명령을 쳐왔는데 즉 push를 origin 위치에 master 브런치로 하겠다는 뜻이다.

또한, git@github.com: 에서 github.com이란 뜻은
ssh폴더내에서 config 된 것 중에 Host가 github.com 이란 걸 쓰겠다 라는 뜻이다. git 인증이 pw, id -> ssh로 강제 전환 됨에 따라
~/.ssh/config 파일을 읽으면 아래와 같이 내가 저장한 config 설정이 나온다.보통 .ssh/ 폴더에 공개키, 비밀키가 다 들어가 있다.

즉 Host를 보면 github.com-xxxxx, 또 github.com-david가 있는데 david란 깃헙 계정을 사용하고 싶으면 위에서
git remote add origin git@github.com-david:깃헙아이디/레파지토리이름.git 을 바꿔주면 된다

2. 두번째 원격저장소를 추가

git remote add upstream git@github.com:깃헙아이디/레파지토리이름.git 이건 upstream이란 별칭으로 두번째 원격저장소를 추가했다.

3. git remote -v

로 확인하면 origin, upstream 2개의 정상적인(총 4개 fetch붙으니깐..) 원격 저장소가 추가된걸 확인 할 수 있다.

4. 각각 push하기

그럼 각각
git add .
git commit -m '메시지'

git push origin 브런치명
git push upstream 브런치명 
해서 각각 올릴 수 있다.

origin, upstream이 아닌 origin 하나로 두 원격 레파지토리를 다 add 해도 된다. 그럼 git push origin master로 올리면 한번에 올라가겠지.

트러블 슛팅

위처럼 여러개 ssh 정보를 config 파일에 설정 했다가, git@ssh계정명:저장소 이런식으로 git ssh 연결 하려 했는데 계속 authority? denined (public key)와 같이 인증실패 에러가 나서 거의 하루동안 cafe 24 의 호스팅 서버에 접속을 못했다 ㅠㅠ

해결

알고 보니 에이전트 ssh-agent에 key를 등록하고 난 후에 연결 시도 하니 되더라.
에이전트에 ssh key 등록하기
eval "$(ssh-agent -s)"

ssh-agent 사용 방법
$ssh-add ~/.ssh/id_rsa (해당 private key 위치)

방금전 만든 id_rsa 추가함

출 : https://syung05.tistory.com/20

ssh-agent가 단순히 pass phrase를 기억해주는 역할만 하는줄 알고, 난 비밀번호를 설정 안했으니 안해도 되겠지 라고 했는데..
ssh-add 명령이 ssh-agent 에게 caching 할 개인 키를 등록해주는 역할을 수행한다고 한다. 정확히 이해는 안되지만 ssh-add 해당 pri키 경로를 치면 비밀키 적용을 해주는 듯하다.
그래서 pull origin 하니 연결이 되더라.

profile
낭만닥터와 슬의를 보고 저런 개발자가 되어야 겠다고 꿈꿔봅니다.

0개의 댓글