본문 바로가기

ynawhocodes' TIL
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Git

Cli) Pull request: 협업할 때 자주 사용하는 pull request 쉽게 알아보기

 

Cli로 pull request하는 방법을 알아보겠습니다 *^-^*


순서

0. 전체적인 흐름 이해

1. fork

2. clone

3. branch 생성

4. 코드 수정

5. pull request

6. merge pull request

7. merge후 동기화 및 branch 삭제

 


 

 

0. 전체적인 흐름 이해

 

pull request를 자세히 알아보기전 순서도를 먼저! 살펴보겠습니다

크게 살펴보자면

먼저 공유할 레포지토리를 로컬의 내 레포지토리로 가져온 후,

내 레포지토리에서 브랜치를 생성하여 코드를 수정합니다

그리고 다시 깃허브에 업로드 합니다

이때 원본 코드와 내가(또는 팀원이) 수정한 코드를 합치기위해

협력자에게 branch 병합을 요청하는 메세지를 보내는 것이 pull request입니다

 

 

*유의사항

로컬과 원격 구분하기

원격 레포지토리와 원본 레포지토리 구분하기

 

 

1. fork

타겟 레포지토리(=원본 레포지토리)를 내 레포지토리로 가져옵니다

1) 협업할 레포지토리에 들어가 fork 클릭

fork 시작!

2) fork할 곳 선택

각자 원하는 곳으로 fork
fork하는 중...

3) fork 완료

내 계정에 fork한 레포지토리가 생성된 걸 알 수 있다

2. clone

현재 로컬(=내 컴퓨터)엔 fork한 레포지토리 공간이 없으므로 로컬에 공간을 만들어줍니다

 

1. 내 레포지토리 HTTPS 복사

2. clone 시작

clone은 git init을 포함한 명령어기때문에 git파일이 자동으로 생성되어 초기화된다

$ git clone (복사해온 HTTPS)

*clone은  init, remote, fetch를 모두 합한 명령어

 

3. 원본 레포지토리 HTTPS 복사

원격(=remote=gitHub)에 있는 원본 레포지토리와 로컬도 연결해줍니다

 

4. 원격의 원본 저장소와 로컬 연결

원본 저장소를 원격 저장소에 추가합니다

$ cd (git 파일 생성된 곳)
$ git remote add (별칭) (원본 레포지토리 HTTPS)

 

5. 중간 확인

원격 저장소 설정이 잘 되어있나 확인을 해봅니다

origin 이름(자동으로 설정)으로 내 레포지토리랑 잘 연결되어있고, 아까 설정한 별칭으로 원본 레포지토리랑 잘 연결되어있는 걸 알 수 있다

#원격 저장소 확인
$ git remote -v

 

3. branch 생성

협업 시 각자 역할을 수행하기 위해선 branch를 생성 해야합니다

1. branch 생성 및 이동

branch가 checkout된 걸 확인할 수 있죠

$ git checkout -b (branch 이름)

#브랜치 확인
$ git branch

 

4. 파일 수정

이제 각자 역할을 수행합니다

1. 코드 수정 및 저장

2.  branch 생성 후 add, commit, push

지겹도록 했던 add, commit, push를 합니다

그 전에!!!

이때 여기서난 오류의 원인은 생성한 branch가 로컬에만 있기 때문인데요

*아까 수행한 git branch -b (브랜치 이름)은 로컬에만 브랜치가 생성되는 명령어

따라서 branch도 원격에 올려주기위해 push를 해야줘야합니다

따라서 정리하자면

#브랜치 push
$ git push -u origin feature/ynawhocodes

#add, commit, push
$ git add .
$ git commit -m "ynawhocodes commit"
$ git push origin feature/ynawhocodes

#확인
$ git status

 

5. pull request

1. compare & pull request 클릭

이제 충돌을 해결해보려고 합니다

branch를 push했기때문에 gitHub에서 확인이 가능해요

 

2. 코드 리뷰 작성 후 create pull request 클릭

코드리뷰를 꼼꼼하게 적어줘야 팀원들이 이해하기 쉬워요

base 레포지토리와 head 레포지토리 확인

3. file changed를 클릭하여 코드 수정부분을 확인

+는 코드가 추가된 부분, -는 코드가 삭제된 부분

 

6. merge pull request

원본 레포지토리 관리자는 pull request를 확인하고 merge를 해야합니다

 

7. merge 후 동기화 및 branch 삭제

merge를 다했으면 merge된 코드를 로컬로 가져와야합니다(=동기화)

그리고 필요없는 branch는 삭제합니다

 

# 코드 동기화
$ git pull (원본 레포지토리 별칭)
# 브랜치 삭제
$ git branch -d (브랜치 이름)

 

위의 상황에서는 

$ git pull real-init_homework

$ git branch -d feature/ynawhocodes

 

이후 협업을 계속할 경우

3~7을 반복하면 되겠죠?

 

 

 

 

 

 

 

-끝-