카테고리 없음

[Git] 다른 사람의 repository 내 repository로 복사하기

soowitty 2023. 11. 11. 17:46

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을 확인하고 병합을 할 수는 있다.

Reference

[Git] 협업 레포지토리를 내 레포지토리로 가져오기