gh๋ž€?

  • GitHub์—์„œ ๊ณต์‹ ์ œ๊ณตํ•˜๋Š” CLI(Command Line Interface) ๋„๊ตฌ
  • ํ„ฐ๋ฏธ๋„์—์„œ GitHub์™€ ๊ด€๋ จ๋œ ์ž‘์—…(์˜ˆ: PR ์ƒ์„ฑ, ์ด์Šˆ ๊ด€๋ฆฌ, ์ €์žฅ์†Œ ๋ณต์ œ ๋“ฑ) ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํˆด
์„ค์น˜ (macOS ๊ธฐ์ค€)
  • Homebrew๋ฅผ ์ด์šฉํ•œ ์„ค์น˜

    brew install gh
  • ๋ฒ„์ „ ํ™•์ธ

    gh --version

์ธ์ฆ ๋ฐ ๊ธฐ๋ณธ ์„ค์ •
  • GitHub๊ณ„์ •์œผ๋กœ CLI ๋กœ๊ทธ์ธ โ†’ ์ดˆ๊ธฐ ์„ธํŒ… ์ง„ํ–‰ (~/.config/gh/config.yml, host.yml์— ์ €์žฅ)
    gh auth login
  • GitHub๊ณ„์ • CLI ๋กœ๊ทธ์•„์›ƒ
    gh auth logout
  • ํ˜„์žฌ ์ธ์ฆ ์ƒํƒœ ํ™•์ธ
    gh auth status
  • ์ธ์ฆ ํ† ํฐ ๊ฐฑ์‹ 
    gh auth refresh

์ €์žฅ์†Œ ๊ด€๋ จ
  • git clone
    gh repo clone <user/repo>
  • ์ƒˆ๋กœ์šด GitHub ์ €์žฅ์†Œ ์ƒ์„ฑ
    gh repo create
  • ํ˜„์žฌ ์—ฐ๊ฒฐ๋œ GitHub ์ €์žฅ์†Œ ์ •๋ณด ํ™•์ธ
    gh repo view
  • ํ˜„์žฌ ์—ฐ๊ฒฐ๋œ GitHub ์ €์žฅ์†Œ ๋ชฉ๋ก ํ™•์ธ
    gh repo list

๋ธŒ๋žœ์น˜ & PR
  • ํ˜„์žฌ ๋ธŒ๋žœ์น˜์—์„œ PR ์ƒ์„ฑ
    gh pr create --base main --head feature --title "์ œ๋ชฉ"
  • ํ˜„์žฌ ์ €์žฅ์†Œ์˜ ์—ด๋ ค ์žˆ๋Š” PR ๋ชฉ๋ก ํ™•์ธ
    gh pr list
  • PR ๋ฒˆํ˜ธ 123๋ฒˆ์˜ ์ƒ์„ธ ์ •๋ณด ํ™•์ธ
    gh pr view 123
  • PR ๋ฒˆํ˜ธ 123๋ฒˆ์˜ ๋ธŒ๋žœ์น˜๋ฅผ ๋กœ์ปฌ์— ์ฒดํฌ์•„์›ƒ
    gh pr checkout 123
  • PR์„ merge
    gh pr merge 123
  • ํ˜„์žฌ ๋ธŒ๋žœ์น˜์˜ PR ์ƒํƒœ ์š”์•ฝ (์ปค๋ฐ‹ ํฌํ•จ)
    gh pr status

์ด์Šˆ
  • ํ˜„์žฌ ์ €์žฅ์†Œ์˜ ์—ด๋ ค ์žˆ๋Š” ์ด์Šˆ ๋ชฉ๋ก ๋ณด๊ธฐ
    gh issue list
  • ์ด์Šˆ ๋ฒˆํ˜ธ 34์˜ ์ƒ์„ธ ๋‚ด์šฉ ๋ณด๊ธฐ
    gh issue view 34
  • ์ƒˆ ์ด์Šˆ ์ƒ์„ฑ
    gh issue create --title "๋ฒ„๊ทธ ๋ฐœ์ƒ" --body "์ƒ์„ธ๋‚ด์šฉ"
  • ์ด์Šˆ ๋‹ซ๊ธฐ
    gh issue close <number>

์›Œํฌํ”Œ๋กœ์šฐ (GitHub Actions1)
  • ์›Œํฌํ”Œ๋กœ์šฐ ๋ชฉ๋ก ํ™•์ธ
    gh workflow list
  • ์‹คํ–‰๋œ ์›Œํฌํ”Œ๋กœ์šฐ ๋Ÿฌ๋‹ ๋ชฉ๋ก
    gh run list
  • ์›Œํฌํ”Œ๋กœ์šฐ ์‹คํ–‰ ์ƒ์„ธ ๋ณด๊ธฐ
    gh run view <run-id>
  • ์›Œํฌํ”Œ๋กœ์šฐ ์‹คํ–‰ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง
    gh run watch <run-id>
  • ์›Œํฌํ”Œ๋กœ์šฐ ๋‹ค์‹œ ์‹คํ–‰
    gh run rerun <run-id>

Discussions (ํ† ๋ก )
  • Discussions ๋ชฉ๋ก ๋ณด๊ธฐ
    gh discussion list
  • ํŠน์ • Discussion ๋ณด๊ธฐ
    gh discussion view <number>
  • ์ƒˆ Discussion ์ƒ์„ฑ
    gh discussion create

Gist2
  • Gist ์ƒ์„ฑ
    gh gist create <file>
  • Gist ๋ชฉ๋ก ํ™•์ธ
    gh gist list
  • ํŠน์ • Gist ๋ณด๊ธฐ
    gh gist view <id>

๊ธฐํƒ€ ์œ ์šฉํ•œ ๋ช…๋ น์–ด
  • ๋ชจ๋“  gh ๋ช…๋ น์–ด์™€ ์‚ฌ์šฉ๋ฒ• ์š”์•ฝ ๋ณด๊ธฐ
    gh help
  • ์™ธ๋ถ€ gh ํ™•์žฅ ๊ธฐ๋Šฅ ์„ค์น˜
    gh extension install <name>
  • alias ์„ค์ •
    gh alias set co 'pr checkout'

Footnotes

  1. ์ฝ”๋“œ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ…Œ์ŠคํŠธ, ๋นŒ๋“œ, ๋ฐฐํฌ ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” GitHub์˜ CI/CD ์›Œํฌํ”Œ๋กœ์šฐ ๋„๊ตฌ โ†ฉ

  2. ์ฝ”๋“œ ์กฐ๊ฐ, ๋ฉ”๋ชจ, ์„ค์ • ํŒŒ์ผ ๋“ฑ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ  ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” GitHub์˜ ๊ฒฝ๋Ÿ‰ ๋ฒ„์ „ ์ €์žฅ์†Œ ์„œ๋น„์Šค โ†ฉ