CS 스터디를 진행했는데, 내용을 추가할 때마다 팀장님의 repository에 방문해야 하는 것이 불편했다.
그래서 다음과 같은 2가지 의문점이 생겼다.
1. 팀장님의 계정에서 협업한 코드를 내 레퍼지토리로 복사하는 방법은 없을까?
2. 복사해온 repo(내 계정)와 원본 repo(팀장님 계정)가 서로 commit이 반영이 될까?
결론부터 말하면 1은 가능하고, 2번은 불가능하다.
(정확히 말하자면 나는 아직 2번을 하는 방법을 모른다,,)
그 방법은 다음과 같다.
1. 내 github에서 새로운 repository를 생성한다.
2. 터미널을 열고 아래 코드를 순서대로 작성한다.
내 pc, 즉 local 환경에서 우클릭 -> 터미널 열기 -> 아래 코드 작성
(당연히 git bash에서 실행해도 됨. 편한 방법으로 하기!)
git clone --mirror [가져오고 싶은 repository 주소]
cd [가져오고 싶은 repository 주소] # cd [가져온 파일] <- 이렇게 입력해도 된다.
git remote set-url --push origin [내 repository 주소]
git push --mirror
풀어서 설명하면..
복사하고 싶은 repo의 주소가 'https://github.com/ctrlC/study'(FROM) 라고 가정하자.
붙여 넣을 repo를 나의 github(복사한 것을 붙여 넣을 저장소)에 생성한다. 그리고, 이 새로 생성한 repo의 주소가 'https://github.com/ ctrlV/study'(TO) 라고 가정한다.
터미널을 열고, 아래와 같이 차례대로 작성한다.
git clone https://github.com/ctrlC/study.git
cd https://github.com/ctrlC/study.git # cd study <- 이렇게 입력해도 된다.
git remote set-url --push origin https://github.com/ctrlV/study.git
git push --mirror
그러면 나의 github repository에 가져오고 싶었던 repository가 복사된다.
💡 위의 내용을 실행한 것 만으로는 내 repo와 원본 repo 사이에 commit 내용 반영은 안 된다!
그 대신, fork 기능을 통해 owner에게 pull request를 보내서 owner가 내가 던진 pr을 확인하고 병합을 할 수는 있다.