Github

[GitHub] Fork, upstream, Pull Repuest 하는 방법

eunjineee 2023. 7. 30. 13:42

도커를 배우는 과정에서 다른 사람의 Repository를 fork 해서 사전미션을 제출하고 Pull Request 해야 하는 일이 생겼다.

frok는 쉽지만... 포크된 레포지토리를 원본 레포에 올리는 방법은...? 당장 시작해 본다.

 

외부 레포지토리 = 다른 사람의 레포지토리

내 레포지토리 = 외부 레포지토리를 fork 한 레포지토리

라고 정해서 설명한다.

 

1. fork 하기

1-1 ) fork 하기 원하는 repository(외부 레포지토리)에서 fork를 눌러준다.

 

1-2 ) 원하는 이름과, 설명 등을 설정하고 create 한다.

이때 fork 된 레포지토리는 기존 레포지토리를 복사 붙여 넣기 해와서 내 레포지토리로 만들었다고 생각하면 이해하기 쉽다.

기존 레포지토리와는 다른 나의 레포지토리가 된 것!

2. 사전 미션 제출하기 (파일 업로드하기)

fork 해 온 내 레포지토리에 파일을 업로드한다.

파일 업로드와 외부 레포지토리 연결의 순서는 상관없는 것 같다.

외부 레포지토리 연결은 upstream으로 저장해 주면 끝이기 때문.

 

3. 외부 레포지토리와 연결하기

3-1 ) 원격 저장소 등록하기

$ git remote -v

명령어를 사용하여 로컬과 연결된 원격저장소를 확인하고,

$ git remote add upstream [다른 사람의 레포지토리(외부 레포) 주소]

명령어를 사용하여 원격저장소(외부 레포지토리)를 저장해 준다

 

이후에 다시 remote를 사용하여 확인해 보면?

upstream으로 잘 등록이 된 것을 볼 수 있다.

 

3-2 ) 충돌 방지하기

혹시 다른 수정내역이 있는지 아래의 명령어를 사용해 확인한다.

$ git fetch upstream

내가 연결하려는 외부저장소(외부 레포지토리)는 branch가 많아서 업데이트가 되었다.

 

4. 외부 레포지토리와 연결하기

이제 내 레포지토리의 Rull requests를 누르면

외부 레포지토리에 내 레포지토리 변경사항을 머지할 수 있다.

이때 오른쪽이 포크해온 내 레포, 왼쪽이 upstream을 사용해 저장해 준 외부 레포 주소이다.

지금은 벌써 pull requests를 날린 상태라서 이렇게 뜨지만, 여기서 pull request를 하고 외부 저장소에서 받아주면 끝!!

 

fork 해서 pull repuests를 처음 해봐서 어느 레포에 가서 pull request를 해야 하는지도 몰라 정리해 보았다.

다른 분들께도 도움이 되길 바란다!!