본문 바로가기
AI 리더의 시대

gh 명령어를 활용한 Pull Request 관리

by woojoon 2026. 1. 7.
반응형

gh 명령어를 활용한 Pull Request 관리 관련 이미지

 

 

GitHub CLI의 gh 명령어를 활용하면 터미널을 벗어나지 않고도 Pull Request(PR)를 생성하고 관리할 수 있어 개발 생산성이 놀랍도록 향상됩니다. PR은 코드 리뷰와 협업의 핵심인데, 매번 웹 브라우저를 열어 클릭하는 대신 gh pr 명령어 하나로 이 모든 과정을 매끄럽게 처리할 수 있죠. 우선 gh pr create를 사용하면 새 PR을 손쉽게 만들 수 있는데, 대화형 모드를 통해 질문에 답하듯 진행하거나 플래그를 써서 한 번에 생성할 수도 있습니다. 생성 후에는 gh pr list로 현재 저장소의 PR 목록을 훑어보고, 필터링 옵션으로 필요한 작업만 골라낼 수 있습니다. 특정 PR의 내용이 궁금하다면 gh pr view로 상세 정보를 확인하고, 현재 작업 중인 브랜치의 상황은 gh pr status로 한눈에 파악하면 됩니다. 동료의 코드를 검토할 때는 gh pr review로 승인이나 코멘트를 남길 수 있고, gh pr merge를 통해 스쿼시(Squash)나 리베이스(Rebase) 등 원하는 방식으로 병합까지 마무리할 수 있습니다. 특히 gh pr checkout은 리뷰 중인 PR 코드를 로컬로 가져와 직접 테스트해볼 때 정말 유용합니다. 이외에도 PR을 닫거나 다시 여는 gh pr close, gh pr reopen, 그리고 드래프트 상태를 해제하는 gh pr ready 같은 기능들도 지원합니다. 결과적으로 GitHub CLI를 익혀두면 불필요한 컨텍스트 스위칭이 줄어들고, CI/CD 파이프라인 같은 자동화 작업에서도 강력한 힘을 발휘하게 됩니다. 터미널과 브라우저를 오가는 번거로움 없이 오직 코드에만 집중하고 싶다면, 이 명령어들을 꼭 활용해 보세요.

gh 명령어로 Pull Request 생성하는 방법과 기본 설정

가장 먼저 gh pr create 명령어로 PR을 생성해 봅시다. 별다른 옵션 없이 명령어를 입력하면 대화형 모드가 실행되는데, 여기서 제목, 본문, 베이스 브랜치, 리뷰어 등을 화살표 키로 선택하며 단계별로 진행할 수 있어 초보자도 쉽게 사용할 수 있습니다. 만약 익숙해져서 더 빠르게 처리하고 싶다면 비대화형 모드를 활용해 보세요. 예를 들어 gh pr create --title "버그 수정" --body "이 Pull Request는 버그를 수정합니다"처럼 제목과 본문을 플래그로 지정하면 즉시 PR이 생성됩니다. 베이스 브랜치는 --base(혹은 -B), 헤드 브랜치는 --head(혹은 -H) 플래그로 지정할 수 있어 현재 브랜치가 아닌 곳에서도 작업이 가능합니다. 아직 작업이 덜 끝났다면 --draft 플래그를 붙여 드래프트 상태로 올릴 수 있고, --reviewer(-r) 플래그로 리뷰어를 콕 집어 요청할 수도 있습니다. 팀 전체를 지정하거나 --assignee @me로 나 자신을 담당자로 설정하는 것도 가능하죠. 라벨(--label), 마일스톤(--milestone), 프로젝트(--project) 등도 생성 시점에 바로 붙일 수 있어 편리합니다. 개인적으로 자주 쓰는 기능은 --fill 플래그인데, 가장 최근 커밋 메시지를 가져와 제목과 본문을 자동으로 채워주기 때문에 귀찮은 타이핑을 줄여줍니다. 팀 내에 정해진 양식이 있다면 --template 플래그로 템플릿 파일을 불러올 수도 있고요. 가끔 웹에서 확인이 필요할 땐 --web을 붙이면 브라우저가 바로 열립니다. 이처럼 다양한 플래그를 조합하면 gh pr create --base main --reviewer monalisa --fill 같이 복잡한 설정도 명령어 한 줄로 끝낼 수 있습니다. 참고로 로컬 브랜치를 아직 푸시하지 않았더라도 CLI가 알아서 푸시 위치를 묻거나 포크(Fork)까지 도와주니 걱정 없이 명령어를 실행하면 됩니다.

gh 명령어를 사용한 Pull Request 조회 및 상태 확인 방법

저장소에 쌓인 PR들을 확인할 때는 gh pr list 명령어를 사용합니다. 기본적으로 'Open' 상태인 목록만 보여주지만, --state 플래그를 활용하면 closed, merged, 혹은 all 옵션으로 닫히거나 병합된 내역까지 모두 조회할 수 있습니다. 특정 개발자가 작업한 건만 보고 싶다면 --author 플래그를 쓰고, 내 PR만 빠르게 찾고 싶다면 gh pr list --author "@me"라고 입력하면 됩니다. 나에게 할당된 작업은 --assignee "@me"로, 특정 라벨이 붙은 건은 --label로 필터링하면 관리가 훨씬 수월해지죠. 베이스 브랜치나 헤드 브랜치 기준으로 목록을 좁히거나, --search 플래그에 GitHub 검색 구문을 넣어 "리뷰가 필요하고 테스트가 통과된 PR"처럼 정교한 조건으로 검색할 수도 있습니다. 기본 출력 개수가 부족하다면 --limit으로 늘려보세요. 목록에서 관심 있는 PR을 발견했다면 gh pr view 뒤에 번호나 브랜치명을 넣어 상세 내용을 확인합니다. 터미널에서 코멘트까지 쭉 읽고 싶다면 --comments 옵션을, 웹에서 보고 싶다면 --web을 붙이면 됩니다. 현재 작업 흐름을 점검할 때는 gh pr status가 제격인데, 내가 올린 PR, 리뷰해야 할 PR, CI 체크 상태 등을 요약해서 보여주기 때문에 대시보드처럼 활용하기 좋습니다. 충돌 여부가 궁금할 땐 --conflict-status를, CI 테스트가 끝날 때까지 기다려야 한다면 gh pr checks --watch를 써보세요. 코드 변경점만 빠르게 훑어볼 때는 gh pr diff 명령어가 꽤 유용합니다.

gh 명령어로 Pull Request 관리하기와 리뷰 및 병합 처리

동료의 코드를 검토할 때도 gh pr review 명령어를 쓰면 터미널을 떠날 필요가 없습니다. --approve 플래그로 승인하거나, --request-changes로 수정 요청을 보내고, 간단한 의견은 --comment로 남기면 됩니다. 리뷰 내용은 --body로 직접 쓰거나 파일에서 불러올 수도 있죠. 리뷰가 끝나고 병합할 시점이 오면 gh pr merge를 실행하세요. 아무 옵션이 없으면 일반 병합(Merge Commit)을 수행하지만, 깔끔한 히스토리를 선호한다면 --squash--rebase 플래그를 추천합니다. 병합 커밋 메시지는 --subject--body로 다듬을 수 있고, --auto를 설정해두면 CI 테스트 통과 즉시 자동으로 병합되도록 예약할 수도 있습니다. 병합 후 브랜치 정리는 --delete-branch 옵션 하나면 로컬과 원격 브랜치 모두 깔끔하게 삭제됩니다. 관리자라면 --admin 플래그로 강제 병합도 가능합니다. 이 외에도 PR을 닫거나(close) 다시 여는(reopen) 작업, 드래프트 PR을 리뷰 요청 상태로 바꾸는(ready) 작업도 명령어 한 줄이면 충분합니다. 특히 제가 강력 추천하는 기능은 gh pr checkout입니다. 리뷰 중인 PR 번호만 입력하면 해당 코드를 로컬로 즉시 가져오기 때문에, 눈으로만 보는 리뷰를 넘어 직접 돌려보고 테스트하기가 정말 편해집니다. 제목이나 본문 수정이 필요하면 gh pr edit, 추가 코멘트는 gh pr comment를 사용하고, 더 이상 논의가 불필요하면 gh pr lock으로 잠글 수도 있습니다. 병합 충돌 해결 등으로 베이스 브랜치와 동기화가 필요할 땐 gh pr update-branch를, 이미 병합된 PR을 되돌려야 한다면 gh pr revert를 활용하세요. 이렇게 CLI로 PR을 관리하기 시작하면, 단순 반복 작업은 줄어들고 개발의 리듬이 끊기지 않는 쾌적한 환경을 경험하실 수 있을 겁니다.

반응형