Skip to main content

GitHub CLI์—์„œ GitHub Codespaces ์‚ฌ์šฉ

ghGitHub ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ น์ค„์—์„œ ์ง์ ‘ GitHub Codespaces๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub CLI ์ •๋ณด

GitHub CLI๋Š” ์ปดํ“จํ„ฐ์˜ ๋ช…๋ น์ค„์—์„œ GitHub๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋ช…๋ น์ค„์—์„œ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ GitHub CLI์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ณ  ์ปจํ…์ŠคํŠธ ์ „ํ™˜์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub CLI ์ •๋ณด์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

GitHub CLI์—์„œ GitHub Codespaces์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub CLI ์„ค์น˜

GitHub CLI์— ๋Œ€ํ•œ ์„ค์น˜ ์ง€์นจ์€ GitHub CLI ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

GitHub CLI ์‚ฌ์šฉ

gh auth login์„ ์•„์ง ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‹คํ–‰ํ•˜์—ฌ GitHub ๊ณ„์ •์œผ๋กœ ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค.

gh๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GitHub Codespaces ์ž‘์—…์„ ํ•˜๋ ค๋ฉด gh codespace SUBCOMMAND ๋˜๋Š” ํ•ด๋‹น ๋ณ„์นญ gh cs SUBCOMMAND๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

GitHub Codespaces ์ž‘์—…์„ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋ จ์˜ ๋ช…๋ น์˜ ์˜ˆ๋กœ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ˜„์žฌ codespace๋ฅผ ๋‚˜์—ดํ•˜์—ฌ ํŠน์ • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ codespace๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    gh codespace list
  • ํ•„์š”ํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ถ„๊ธฐ์— ๋Œ€ํ•œ ์ƒˆ codespace๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
    gh codespace create -r github/docs -b main
  • ์ƒˆ codespace๋กœ SSHํ•ฉ๋‹ˆ๋‹ค.
    gh codespace ssh -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq
  • ๋กœ์ปฌ ๋จธ์‹ ์— ํฌํŠธ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
    gh codespace ports forward 8000:8000 -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq

GitHub Codespaces์— ๋Œ€ํ•œ gh ๋ช…๋ น

์•„๋ž˜ ์„น์…˜์—์„œ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ ์ž‘์—…์— ๋Œ€ํ•œ ์˜ˆ์ œ ๋ช…๋ น์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ๋ช…๋ น์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์˜ต์…˜์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์—ฌ GitHub Codespaces์— ๋Œ€ํ•œ gh ๋ช…๋ น์˜ ์ „์ฒด ์ฐธ์กฐ๋Š” gh codespace์— ๋Œ€ํ•œ GitHub CLI ์˜จ๋ผ์ธ ๋„์›€๋ง์„ ์ฐธ์กฐํ•˜์„ธ์š”. ๋Œ€์•ˆ์ ์œผ๋กœ, ๋ช…๋ น์ค„์—์„œ ์ผ๋ฐ˜ ๋„์›€๋ง์„ ๋ณด๋ ค๋ฉด gh codespace --help๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํŠน์ • ํ•˜์œ„ ๋ช…๋ น์— ๋Œ€ํ•œ ๋„์›€๋ง์„ ๋ณด๋ ค๋ฉด gh codespace SUBCOMMAND --help๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค..

์ฐธ๊ณ  ํ•ญ๋ชฉ

๋งŽ์€ ๋ช…๋ น๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋Š” -c CODESPACE_NAME ํ”Œ๋ž˜๊ทธ๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ƒ๋žตํ•˜๋ฉด ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” codespace ๋ชฉ๋ก์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  codespace ๋ชฉ๋ก

gh codespace list

๋ชฉ๋ก์—๋Š” ๋‹ค๋ฅธ gh codespace ๋ช…๋ น์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ codespace์˜ ๊ณ ์œ ํ•œ ์ด๋ฆ„์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

codespace์˜ ๋ถ„๊ธฐ ์ด๋ฆ„ ๋์— ์žˆ๋Š” ๋ณ„ํ‘œ๋Š” ํ•ด๋‹น codespace์— ์ปค๋ฐ‹๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ฒŒ์‹œ๋˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ ๋‚ด์šฉ์ด ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ƒˆ codespace ๋งŒ๋“ค๊ธฐ

gh codespace create -r OWNER/REPO_NAME [-b BRANCH]

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ codespace ๋งŒ๋“ค๊ธฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

codespace์˜ ์„ธ๋ถ€ ์ •๋ณด ๋ณด๊ธฐ

gh codespace view

์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ๊ธฐ์กด codespace ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ๋‹ค์Œ ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  • codespace ์ด๋ฆ„
  • ์ƒํƒœ(์˜ˆ: "์‚ฌ์šฉ ๊ฐ€๋Šฅ" ๋˜๋Š” "์ข…๋ฃŒ")
  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ
  • Git ์ƒํƒœ
  • codespace๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ
  • ๋จธ์‹  ํ˜•์‹
  • ์œ ํœด ์‹œ๊ฐ„ ์ œํ•œ
  • codespace๋ฅผ ๋งŒ๋“  ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.
  • ๋ณด์กด ๊ธฐ๊ฐ„

์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub CLI ์ฐธ์กฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

codespace ์ค‘์ง€

gh codespace stop -c CODESPACE-NAME

์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Codespaces์— ๋Œ€ํ•œ ์‹ฌ์ธต ๋ถ„์„์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

codespace ์‚ญ์ œ

gh codespace delete -c CODESPACE-NAME

์ž์„ธํ•œ ๋‚ด์šฉ์€ Codespace ์‚ญ์ œ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

codespace ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ

gh codespace edit -c CODESPACE-NAME -d 'DISPLAY-NAME'

์ž์„ธํ•œ ๋‚ด์šฉ์€ codespace ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

Codespace ๋‹ค์‹œ ๋นŒ๋“œ

gh codespace rebuild

์ „์ฒด ๋‹ค์‹œ ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ด ๋ช…๋ น์˜ ๋์— --full๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Codespace์—์„œ ์ปจํ…Œ์ด๋„ˆ ๋‹ค์‹œ ๋นŒ๋“œ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ด ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ codespace๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ํ˜„์žฌ codespace์˜ ์‹œ์Šคํ…œ์— ์ €์žฅ๋œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค devcontainer.json . ์ด ๋ฌธ์ œ๋Š” ํŒŒ์ผ์˜ ํ˜„์žฌ ์ƒํƒœ๊ฐ€ ์›๋ณธ ์ œ์–ด์— ์ €์žฅ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ์†Œ๊ฐœ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

codespace๋กœ SSH

์›๊ฒฉ codespace ๋จธ์‹ ์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ํ„ฐ๋ฏธ๋„์—์„œ codespace๋กœ SSHํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gh codespace ssh -c CODESPACE-NAME

์ฐธ๊ณ  ํ•ญ๋ชฉ

์—ฐ๊ฒฐํ•˜๋Š” codespace๋Š” SSH ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์—๋Š” ์ž๋™์œผ๋กœ ์‹œ์ž‘๋˜๋Š” SSH ์„œ๋ฒ„๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. codespace๊ฐ€ ๊ธฐ๋ณธ ์ด๋ฏธ์ง€์—์„œ ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š์€ ๊ฒฝ์šฐ devcontainer.json ํŒŒ์ผ์˜ features ๊ฐœ์ฒด์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์—ฌ SSH ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"features": {
// ...
"ghcr.io/devcontainers/features/sshd:1": {
"version": "latest"
},
// ...
}

devcontainer.json ํŒŒ์ผ๊ณผ ๊ธฐ๋ณธ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ์†Œ๊ฐœ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

GitHub Codespaces์€(๋Š”) ์›ํ™œํ•œ ์ธ์ฆ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ SSH ํ‚ค๋ฅผ ์ž๋™์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ gh codespace ssh์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Visual Studio Code์—์„œ codespace ์—ด๊ธฐ

gh codespace code -c CODESPACE-NAME

๋กœ์ปฌ ์ปดํ“จํ„ฐ์— VS Code์ด(๊ฐ€) ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Visual Studio Code์—์„œ Github Codespaces ์‚ฌ์šฉ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

JupyterLab์—์„œ Codespace ์—ด๊ธฐ

gh codespace jupyter -c CODESPACE-NAME

์—ด๋ ค ์žˆ๋Š” codespace์— JupyterLab ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์—๋Š” JupyterLab์ด ํฌํ•จ๋˜๋ฏ€๋กœ ๊ธฐ๋ณธ ์ด๋ฏธ์ง€์—์„œ ๋งŒ๋“  codespace๋Š” ํ•ญ์ƒ JupyterLab์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ์†Œ๊ฐœ ๋ฐ devcontainers/images ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ์—์„œ ๊ธฐ๋ณธ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ devcontainer.json ํŒŒ์ผ์— ghcr.io/devcontainers/features/python ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ JupyterLab์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ต์…˜ "installJupyterlab": true๋ฅผ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ devcontainers/features ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ python ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

codespace ๊ฐ„ ํŒŒ์ผ ๋ณต์‚ฌ

gh codespace cp [-r] SOURCE(S) DESTINATION

ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋ฆ„์— ์ ‘๋‘์‚ฌ remote:๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ codespace์— ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. UNIX cp ๋ช…๋ น๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋Š” ์›๋ณธ์„ ์ง€์ •ํ•˜๊ณ  ๋งˆ์ง€๋ง‰ ์ธ์ˆ˜๋Š” ๋Œ€์ƒ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์ƒ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ์ธ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ์›๋ณธ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›๋ณธ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ์ธ ๊ฒฝ์šฐ -r(์žฌ๊ท€) ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

codespace์˜ ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ ์œ„์น˜๋Š” ์›๊ฒฉ ์‚ฌ์šฉ์ž์˜ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

  • ๋กœ์ปฌ ๋จธ์‹ ์—์„œ codespace์˜ $HOME ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    gh codespace cp myfile.txt remote:

  • codespace์—์„œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์ฒดํฌ ์•„์›ƒ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    gh codespace cp myfile.txt remote:/workspaces/REPOSITORY-NAME

  • codespace์—์„œ ๋กœ์ปฌ ๋จธ์‹ ์˜ ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    gh codespace cp remote:myfile.txt .

  • ์„ธ ๊ฐœ์˜ ๋กœ์ปฌ ํŒŒ์ผ์„ codespace์˜ $HOME/temp ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    gh codespace cp a1.txt a2.txt a3.txt remote:temp

  • codespace์—์„œ ๋กœ์ปฌ ๋จธ์‹ ์˜ ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์„ธ ๊ฐœ์˜ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    gh codespace cp remote:a1.txt remote:a2.txt remote:a3.txt .

  • ๋กœ์ปฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ codespace์˜ $HOME ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    gh codespace cp -r mydir remote:

  • ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ codespace์—์„œ ๋กœ์ปฌ ๋จธ์‹ ์œผ๋กœ ๋ณต์‚ฌํ•˜์—ฌ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

    gh codespace cp -r remote:mydir mydir-localcopy

์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€ ํ”Œ๋ž˜๊ทธ๋ฅผ ํฌํ•จํ•˜์—ฌ gh codespace cp ๋ช…๋ น์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub CLI ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

codespace์˜ ํฌํŠธ ์ˆ˜์ •

codespace์˜ ํฌํŠธ๋ฅผ ๋กœ์ปฌ ํฌํŠธ๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ํฌํŠธ๋Š” ์ „๋‹ฌ๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ํฌํŠธ ์ „๋‹ฌ์„ ์ค‘์ง€ํ•˜๋ ค๋ฉด Control+C๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

gh codespace ports forward CODESPACE-PORT_NAME:LOCAL-PORT-NAME -c CODESPACE-NAME

์ „๋‹ฌ๋œ ํฌํŠธ์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด gh codespace ports๋ฅผ ์ž…๋ ฅ ํ•œ ๋‹ค์Œ codespace๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์ „๋‹ฌ๋œ ํฌํŠธ์˜ ํ‘œ์‹œ ์œ ํ˜•์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ธ ๊ฐ€์ง€ ํ‘œ์‹œ ์—ฌ๋ถ€ ์„ค์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • private - ์ž์‹ ์—๊ฒŒ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํฌํŠธ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ๊ธฐ๋ณธ ์„ค์ •์ž…๋‹ˆ๋‹ค.
  • org - ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์†Œ์œ ํ•œ ์กฐ์ง์˜ ๊ตฌ์„ฑ์›์—๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • public - URL ๋ฐ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์•„๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME

ํ•˜๋‚˜์˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ํฌํŠธ์— ๋Œ€ํ•œ ํ‘œ์‹œ ์œ ํ˜•์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ:

gh codespace ports visibility 80:private 3000:public 3306:org -c CODESPACE-NAME

์ž์„ธํ•œ ๋‚ด์šฉ์€ codespace์˜ ํฌํŠธ ์ „๋‹ฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์•ก์„ธ์Šค codespace ๋กœ๊ทธ

codespace์— ๋Œ€ํ•œ ์ƒ์„ฑ ๋กœ๊ทธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๋ฉด SSH ํ‚ค์— ๋Œ€ํ•œ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

gh codespace logs -c CODESPACE-NAME

์ƒ์„ฑ ๋กœ๊ทธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub Codespaces ๋กœ๊ทธ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์›๊ฒฉ ๋ฆฌ์†Œ์Šค ์•ก์„ธ์Šค

GitHub CLI ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜์—ฌ codespace์™€ ๋กœ์ปฌ ์ปดํ“จํ„ฐ ๊ฐ„์— ๋ธŒ๋ฆฌ์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, codespace๋Š” ์ปดํ“จํ„ฐ์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์›๊ฒฉ ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™•์žฅ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ GitHub CLI ์‚ฌ์šฉ์„ ํ†ตํ•œ ์›๊ฒฉ ๋ฆฌ์†Œ์Šค ์•ก์„ธ์Šค๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฐธ๊ณ  ํ•ญ๋ชฉ

GitHub CLI ํ™•์žฅ์€ ํ˜„์žฌ ๊ณต๊ฐœ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋ฒ„์ „์ด๋ฉฐ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

codespace์˜ ์ปดํ“จํ„ฐ ํ˜•์‹ ๋ณ€๊ฒฝ

gh codespace edit -m MACHINE-TYPE-NAME

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด codespace์— ๋Œ€ํ•œ ์ปดํ“จํ„ฐ ์œ ํ˜• ๋ณ€๊ฒฝ์˜ "GitHub CLI" ํƒญ์„ ์ฐธ์กฐํ•˜์„ธ์š”.