pr 브랜치 로컬로 받아오기

부가 설명
merge 하기 전에 테스트가 필요하거나, conflict 났을 때 수정하기 편함
Tags
pull
remote
PR
 

[1] 원격 pr브랜치 로컬로 가져오기 (설정없이 가능)

아래 명령어 예시는 원격의 pull/110/head를 pull 받아서 로컬의 pr-100 브랜치로 만드는 것이다.
$ git pull origin pull/110/head:pr-110 From github.com:username/project-name * [new ref] refs/pull/110/head -> pr-110
 

[2] git fetch origin 했을 때 pr까지 다 가져오기

2-1) .git/config 파일에 한줄 추가하기 ( 한번만 설정하면 됨 )

<프로젝트루트>/.git/config 파일 열기
[remote “origin”]의 url 하단에 fetch 구문 한줄 추가 후 저장
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
.git/config에 한줄 추가
notion image

2-2) $ git fetch origin

remote origin의 레퍼런스들을 불러옴
$ git fetch origin
 

2-3) $ git checkout -t origin/pr/158

체크아웃 하고싶은 pr번호로 체크아웃하기
# git checkout -t origin/pr/<pr번호> $ git checkout -t origin/pr/158
 
이후에는 2-2)와 2-3)만 이용해서 pr 브랜치로 체크아웃하면 된다.

[3] git pr <PR번호>로 체크아웃 하기 (추천)

💡
PR 올라온 것을 로컬에서 테스트해 보고 싶을 때 용이하다. 특히 프론트의 경우에는 View도 같이 봐야하므로 매우 편리함.
$ git pr <pr번호> # 원격의 pr브랜치를 가져와서 로컬에 pr/<pr번호> 브랜치로 만든 후 checkout까지 함.
$ git pr-clean # pr브랜치를 삭제해줌
위 두가지 명령어를 가능하게 도와주는 설정을 진행한다.

.gitconfig 파일 수정

전역 설정 : ~/.gitconfig
이 프로젝트에만 적용 : <프로젝트경로>/.git/config
# 아래 3줄을 추가함. [alias] pr = "!f() { git fetch -fu ${2:-origin} refs/pull/$1/head:pr/$1 && git checkout pr/$1; }; f" pr-clean = "!git for-each-ref refs/heads/pr/* --format='%(refname)' | while read ref ; do branch=${ref#refs/heads/} ; git branch -D $branch ; done"
notion image

테스트

notion image
notion image

[3] gh cli 이용하기

# gh pr checkout <PR넘버> $ gh pr checkout 711
notion image