다른 사람 레포에 PR 날리기

불타는강정·2022년 1월 31일
2
post-thumbnail

보통 다른 사람 깃 레포에 PR을 날리려면 fork 해서 작업 후에 PR을 날린다.
예전에 기여를 해보고 싶어서 어찌저찌 PR을 날렸는데 날린 이후에 갱신을 못해서 PR을 날릴 때마다 fork를 다시 따오는 짓(..)을 반복했었다. 지금은 어떻게 하는지 익숙해져서 과정을 정리 해보려고 한다.

목차

  • 다른 사람 레포 fork 따와서 작업하기
  • 작업 후 PR 날리기
  • PR이 머지된 후 업데이트 하기

알아둘 점

  • 다른 사람 레포를 upstream이라 하고, fork 따온 레포를 origin, clone 받은 레포를 local이라 부른다
  • 예시는 gnaAndSeongpar 레포에서 mimseong으로 fork한다

1. PR 날릴 깃 레포 fork하기

본인은 mimseong이고 gnaAndSeongpar 레포에 PR을 날리고 싶다!

먼저 gnaAndSeongpar 레포를 fork 따온다.

이러면 내 계정 하위에 fork된 레포를 볼 수 있다.

2. origin을 clone한다

origin 레포를 본인 컴퓨터에 clone한다

git clone -b main --single-branch https://github.com/mimseong/ComputerScience.git

단순히 clone 받을 수 있지만 main 브랜치 하나만 필요해서 --single-branch 옵션을 붙였다

3. 기능 구현한 브랜치를 생성한다

git switch -c test1

다음으로 작업할 브랜치를 생성한다.
물론 브랜치 명이 test1인건 좋지 않지만 편의를 위해 사용한다.

4. 작업 완료 후 origin에 업로드한다

git push origin test1

test1 브랜치에 작업이 끝나면 push해서 origin에 반영한다.

5. PR을 날린다

gnaAndSeongpar 레포로 가서 Pull Request를 요청한다.
우리는 다른 레포의 브랜치를 머지하고 싶으니 compare across fork를 눌러서 레포를 지정한다.

이제 pr이 머지되기를 기다린다.
PR이 머지됐다면! upstream의 main 브랜치가 업데이트 되었을 것이다.
하지만 origin과 local의 main 브랜치는 최신 상태가 아니다.
이제 본인 레포도 최신으로 반영해주자!

6. upstream 추가

2년 전의 초보 강정은 여기서 막혀서 fork를 계속 받는 복잡한 일을 했었다.. 여러분들은 그러지 말도록 하자.
현재 local은 origin(mimseong)과 연결되어 있다. fork한 원본 레포인 gnaAndSeongpar의 존재를 모른다!
그래서 local에 gnaAndSeongpar를 등록해준다.

git remote add upstream https://github.com/gnaAndSeongpar/ComputerScience.git

gnaAndSeongpar 레포를 upstream이란 이름으로 등록해줬다!
이 작업은 한 번만 하면 된다. (말 그대로 등록이니깐)

7. 최신 상태의 브랜치 업데이트

git fetch upstream main

upstream 레포의 main 브랜치를 최신 상태로 업데이트 해줬다.

8. main 브랜치에 반영

해치웠나..? 싶겠지만 이건 upstream/main을 최신으로 업데이트 한것이고 본인 레포의 origin/main으로 반영해줘야 한다.

잘 이해 안 될 수 있겠지만 그림을 보며 이해해보도록 하자.

git rebase upstream/main

(주의) 위 명령은 main 브랜치에서 해야한다.
main 브랜치가 아니라면 git switch main으로 이동하자.

9. 끝!

이제 fork 해서 작업 후 PR을 날려 기여하고, fork 받은 레포를 최신 상태로 업데이트 할 수 있다.

잘못된 정보가 있거나 아 이거 좀 설명이 부족하다~ 싶은 것들이 있다면 알려주세요.

profile
대충살자

0개의 댓글