GitHub CLI ์ ๋ณด
GitHub CLI๋ ์ปดํจํฐ์ ๋ช ๋ น์ค์์ GitHub๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ์คํ ์์ค ๋๊ตฌ์ ๋๋ค. ๋ช ๋ น์ค์์ ์์ ํ๋ ๊ฒฝ์ฐ GitHub CLI์(๋ฅผ) ์ฌ์ฉํ์ฌ ์๊ฐ์ ์ ์ฝํ๊ณ ์ปจํ ์คํธ ์ ํ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ GitHub CLI ์ ๋ณด์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
GitHub CLI์์ GitHub Codespaces์(๋ฅผ) ์ฌ์ฉํ์ฌ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
- ๋ชจ๋ codespace ๋ชฉ๋ก
- ์ codespace ๋ง๋ค๊ธฐ
- codespace์ ์ธ๋ถ ์ ๋ณด ๋ณด๊ธฐ
- codespace ์ค์ง
- codespace ์ญ์
- codespace ์ด๋ฆ ๋ฐ๊พธ๊ธฐ
- Codespace ๋ค์ ๋น๋
- codespace๋ก SSH
- Visual Studio Code์์ codespace ์ด๊ธฐ
- JupyterLab์์ Codespace ์ด๊ธฐ
- codespace ๊ฐ ํ์ผ ๋ณต์ฌ
- codespace์ ํฌํธ ์์
- ์ก์ธ์ค codespace ๋ก๊ทธ
- ์๊ฒฉ ๋ฆฌ์์ค ์ก์ธ์ค
- codespace์ ์ปดํจํฐ ํ์ ๋ณ๊ฒฝ
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" ํญ์ ์ฐธ์กฐํ์ธ์.