코딩하는 개굴이

[Git] Pull Request 를 Git 에 끌어오자! 본문

GIT

[Git] Pull Request 를 Git 에 끌어오자!

개굴이모자 2023. 4. 17. 00:49
반응형

작업 시에, 만일 클론한 개인 레포에서 작업을 하고 Upstream 으로 PR 을 올리는 방식을 팀에서 사용하는 경우

PR 이 별도로 설정하지 않으면 Opensource/GitKraken 등에 뜨지 않는 현상이 보일 것이다.

 

이런 경우, 타인의 레포로 직접 가서 clone 할 수도 있겠지만 매번 그러기 번거롭기 그지없다.

따라서, Upstream 의 PR 을 끌어오는 명령어를 알아보도록 하자.

 

 

 

특정 PR 을 끌어오자

우리가 가져오고자 하는 PR 이 148번이라고 가정하자.

특정 PR 이 몇번인지는 아래와 같이 PR 에 들어가 우측의 # 이후에 적힌 번호로 알 수 있다.

 

이 번호를 가지고 아래 명령어를 입력하자.

git fetch -fu upstream refs/pull/148/head:pr/148
git checkout pr/148

첫번째 명령어는 upstream 에서 pr 브랜치를 끌어오는 것이고, 두번째 명령어는 해당 pr 로 checkout 하는 것이다.

이렇게 매번 입력할 수도 있지만 더 쉽게 사용할 수 있는 방법이 있다.

 

 

 

설정을 쉽게 쓸 수 있도록 지정하자

위 명령어들을 별칭으로 만들어 쉽게 사용할 수도 있다.

본인의 경우는 적용하다가 실수로 모든 pr 을 끌어오게 되어,
수많은 pr 들로 인해 GitKraken 이 고장난 이력이 존재하여 뻘짓을 한번 크게 하였다.
주의가 필요하다.

 

우선 gitconfig 로 이동하도록 하자.

vi ~/.gitconfig

그러면 아래와 같이 나올텐데, 우리는 alias 하위에 아래와 같이 내용을 적을 것이다.

[alias]
  pr  = "!f() { git fetch -fu ${2:-upstream} 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"

pr 별칭은 upstream 에서 가져오고 해당 브랜치로 체크아웃 해주는 명령어들이다.

pr-clean 의 경우, pr/number 형태의 브랜치들을 지워주는 별칭이다. 이후, :wq! 로 저장해주면 된다.

 

이제, 우리는 아래와 같이 쉽게 사용할 수 있게 되었다.

//PR 가져오기
$ git pr 94
remote: Counting objects: 6, done.
remote: Total 6 (delta 3), reused 3 (delta 3), pack-reused 3
Unpacking objects: 100% (6/6), done.
From github.com:username/project-name
 * [new ref]         refs/pull/94/head -> pr/94
Switched to branch 'pr/94'

//PR 브랜치 삭제하기
$ git pr-clean
Deleted branch pr/94 (was 8dae336).
Deleted branch pr/112 (was 97abd00).

 

별칭도 세팅했으니, 편하고 꼼꼼하게 PR 리뷰를 해보도록 하자!

 

 

참고 링크

반응형

'GIT' 카테고리의 다른 글

[Git 이해하기] Git 이 관리하는 방법  (0) 2023.07.16
LFS 를 적용해보자! (feat. Trouble Shooting)  (1) 2023.07.14
Comments