Midnight Coder's Lounge

[Github] 커맨드라인에서 pull request 작성하기 본문

Git

[Github] 커맨드라인에서 pull request 작성하기

AtomicLiquors 2024. 7. 12. 01:33

브랜치 작업을 마치고 IDE에서 곧바로 PR을 보내고 싶어서 CLI에서 PR을 보내는 방법을 알아보았습니다.

터미널에서 GitHub CLI(gh)를 사용하여 다음 커맨드를 통해 PR을 작성할 수 있습니다.

gh pr create --base BRANCH_A --head BRANCH_B --title "TITLE" --body "BODY"

 

gh가 설치되어 있지 않다면 아래 설치과정을 따라서 설치해 줍시다.

 

 

📍 설치

mac에서는 brew install 등을 이용해 커맨드라인으로 설치해 주면 됩니다.

brew install gh

 

 

window에서는 아래 공식 홈페이지에서 설치 파일(.msi)을 받아 설치합니다.

 

GitHub CLI

Take GitHub to the command line

cli.github.com

 

 

 

 

커맨드에서 gh를 입력하여 설치를 확인합니다.

(설치가 안 된 경우 컴퓨터를 재시작합니다.)

 

 

📍 사용자 인증

아래 커맨드를 입력해 Github CLI에 자신의 계정 정보로 로그인을 시작합니다.

gh auth login

 

 

로그인할 계정을 선택하게 됩니다.
Github.com 계정으로 로그인할 거니까 Github.com을 선택하겠습니다.

 

 

HTTPS/SSH 중에 원하는 프로토콜을 선택하여 Github와 통신합니다. 전 HTTPS를 사용하겠습니다.

 

 

credential을 통해 인증할 것인지 물어보면 Y를 입력합니다.

 

 

웹 브라우저를 통해 로그인하거나 인증 토큰을 사용할 수 있습니다.

여기서는 웹 브라우저를 통해 로그인하겠습니다.

 

 

 

 

 

 

인증에 사용할 코드가 터미널에 뜹니다.

엔터키를 누르면 Github 로그인 페이지로 연결됩니다.

 

로그인을 마치면 Device Activation 화면이 뜹니다.

괜히 Device라고 하니 모바일 인증이랑 헷갈릴 수 있는데,

아까 터미널에 떴던 코드를 입력해 주는 겁니다.

 

아까 봤던 이 화면에 있는 코드를 입력하면 됩니다.

 

 

 

 

인증이 완료되면 아래와 같이 Github CLI에 로그인됩니다.

 

 

📍 PR 작성

이제 맨 처음에 소개했던 커맨드를 이용해서 PR을 작성해 봅시다.

gh pr create --base BRANCH_A --head BRANCH_B --title "TITLE" --body "BODY"
  • --base에 해당하는 {BRANCH_A} 자리에는 변경 사항이 병합될 브랜치 이름을 적어 줍니다.
  • --head에 해당하는 {BRANCH_B} 자리에는 변경 사항이 들어있는 브랜치 이름을 적어 줍니다.
  • {TITLE} 자리에는 PR의 제목을 작성하고 따옴표로 감싸 줍니다.
  • {BODY} 자리에는 PR의 본문 내용을 작성하고 따옴표로 감싸 줍니다.

 

예를 들어서 master 브랜치에 feat/login 브랜치를 병합하려면 다음과 같은 커맨드를 입력해 주는 겁니다.

gh pr create --base master --head feat/login 
--title "로그인 기능 추가" --body "OAuth방식을 이용한 로그인 기능을 추가했습니다."

 

 

 

 

PR 요청이 완료되었고 이제 Github에서 요청을 검토하고 Merge할 수 있게 됩니다.

 

 

 

만일 PR을 검토할 담당자를 지정하고 싶다면 커맨드에 -a 또는 --assignee 옵션을 사용할 수 있습니다.

gh pr create -a "@octocat"
gh pr create --assignee "@octocat"

 

 

 

 

 

 

더 자세한 옵션이나, Github CLI를 이용한 PR에 관해 자세한 내용은 아래 공식 문서를 참고해 주세요.

 

끌어오기 요청 만들기 - GitHub Docs

리포지토리의 변경 내용을 제안하고 공동 작업하는 끌어오기 요청을 만듭니다. 이러한 변경 내용은 분기에서 제안되어 기본 분기에 완료 및 승인된 작업만 포함되도록 합니다.

docs.github.com

 

 

Comments