GitHub CLI(gh) 설치와 사용법: 로그인, 클론, 터미널에서 PR 만들기
공식 절차로 GitHub CLI를 설치하고 gh auth login을 마친 뒤, 터미널에서 클론하거나 Pull Request를 만든다.
터미널의 GitHub CLI(명령 gh)로 클론하거나 Pull Request를 열려면 세 가지를 먼저 끝낸다. 공식 설치, gh auth login, 그다음 gh repo clone 또는 gh pr create.
cli.github.com을 따르고 패키지 이름을 짐작하지 않는다. 검색어는 GitHub CLI 설치, gh auth login, gh로 PR 만들기. 문서는 cli.github.com과 cli.github.com/manual/.
OS에 맞춰 공식 바이너리를 설치한다
macOS와 Windows
macOS: brew install gh. Windows: winget install --id GitHub.cli, 또는 Scoop / Chocolatey. 그다음 gh --version.
Linux
Debian / Ubuntu / Fedora 등은 cli.github.com의 배포판 저장소를 따른다. 임의의 deb를 받지 않는다. Homebrew가 막혀 있으면 공식 릴리스 패키지를 쓴다.
| 단계 | 명령 | 주의 |
|---|---|---|
| 로그인 | gh auth login | github.com 또는 Enterprise, HTTPS 또는 SSH, 브라우저 또는 토큰 |
| 확인 | gh auth status | 계정, 프로토콜, 토큰 유효성 |
| 클론 | gh repo clone owner/repo | 비공개는 권한, SSO 조직은 추가 승인 |
| PR | gh pr create | 브랜치는 push됨. --fill 또는 직접 작성 |
설치, 로그인, 클론 또는 PR
- 01설치하고 버전을 확인한다
공식 페이지의 패키지 관리자를 고른다.
gh --version이 버전을 찍어야 한다. 명령이 없으면 PATH. 옛 제3자gh와 섞지 않는다. - 02gh auth login을 실행한다
GitHub.com(또는 관리자의 Enterprise). 일상은 HTTPS. 키가 이미 있으면 SSH. 브라우저면 Login with a web browser를 고르고 일회용 코드를 github.com/login/device에 넣는다. 화면 없으면 PAT.
- 03저장소 하나를 클론한다
대상 디렉터리에서
gh repo clone owner/repo..git이 생겨야 한다. 비공개가 실패하면gh auth status와 SSO. - 04현재 브랜치에서 PR을 만든다
push 후 루트에서
gh pr create. 제목과 본문, 또는gh pr create --fill. 반환 URL에서 diff를 본다.
gh --version
gh auth login
gh auth status
gh repo clone owner/repo
cd repo
# 현재 브랜치를 커밋하고 push한 뒤:
gh pr create --title "Fix login timeout" --body "Repro and fix."- 브라우저 로그인이 필수인가?
- 아니다. 공식 마법사는 personal access token을 받는다. CI와 헤드리스 호스트는 토큰 또는
GH_TOKEN. 저장소에 넣지 않는다. - HTTPS와 SSH는 어떻게 고르나?
- GitHub에 올린 SSH 키가 있으면 SSH. 없으면 HTTPS를 고르고 gh가 자격 증명 도우미를 설정하게 한다.
- pr create가 저장소를 못 찾거나 거부한다.
- 지금 위치가 git 저장소인지, 원격이 GitHub인지, 브랜치가 push됐는지, 쓰기 권한이 있는지를 본다. SSO 조직은 승인 페이지에서 org를 켠다.
- 설치하면 공유 그림을 대체하는가?
- 아니다. 터미널용 GitHub 클라이언트다. 회의가 같은 그림이면 sitdraw를 연다.
저장소를 만지기 전에 로그인한다
gh auth status가 깨끗해질 때까지 실패한 클론을 네트워크 장애로 보지 않는다. 대부분은 계정, SSO, 프로토콜 불일치다.