GitHub CLI ์ ๋ณด
GitHub CLI๋ ์ปดํจํฐ์ ๋ช ๋ น์ค์์ GitHub๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ์คํ ์์ค ๋๊ตฌ์ ๋๋ค. ๋ช ๋ น์ค์์ ์์ ํ๋ ๊ฒฝ์ฐ GitHub CLI์(๋ฅผ) ์ฌ์ฉํ์ฌ ์๊ฐ์ ์ ์ฝํ๊ณ ์ปจํ ์คํธ ์ ํ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ "AUTOTITLE"์ ์ฐธ์กฐํ์ธ์.
GitHub CLI์์ GitHub Codespaces์ ์ฌ์ฉํ์ฌ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
- ๋ชจ๋ 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 ๊ณ์ ์ผ๋ก ์ธ์ฆํฉ๋๋ค.
๋ฅผ ์ฌ์ฉํ์ฌ GitHub Codespaces๋ฅผ ์ฌ์ฉ gh ํ๋ ค๋ฉด ๋๋ ํด๋น ๋ณ์นญ์ ์
๋ ฅ 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]
์์ธํ ๋ด์ฉ์ "AUTOTITLE"์ ์ฐธ์กฐํ์ธ์.
codespace ์ค์ง
gh codespace stop -c CODESPACE-NAME
์์ธํ ๋ด์ฉ์ "AUTOTITLE"์ ์ฐธ์กฐํ์ธ์.
codespace ์ญ์
gh codespace delete -c CODESPACE-NAME
์์ธํ ๋ด์ฉ์ "AUTOTITLE"์ ์ฐธ์กฐํ์ธ์.
codespace ์ด๋ฆ ๋ฐ๊พธ๊ธฐ
gh codespace edit -c CODESPACE-NAME -d DISPLAY-NAME
์์ธํ ๋ด์ฉ์ "AUTOTITLE"์ ์ฐธ์กฐํ์ธ์.
codespace๋ก SSH
์๊ฒฉ codespace ๋จธ์ ์์ ๋ช ๋ น์ ์คํํ๋ ค๋ฉด ํฐ๋ฏธ๋์์ codespace๋ก SSHํ ์ ์์ต๋๋ค.
gh codespace ssh -c CODESPACE-NAME
์ฐธ๊ณ : ์ฐ๊ฒฐํ๋ codespace๋ SSH ์๋ฒ๋ฅผ ์คํํด์ผ ํฉ๋๋ค. ๊ธฐ๋ณธ ์ปจํ
์ด๋ ์ด๋ฏธ์ง์๋ ์๋์ผ๋ก ์์๋๋ SSH ์๋ฒ๊ฐ ํฌํจ๋ฉ๋๋ค. codespace๊ฐ ๊ธฐ๋ณธ ์ด๋ฏธ์ง์์ ๋ง๋ค์ด์ง์ง ์์ ๊ฒฝ์ฐ ํ์ผ์ ๊ฐ์ฒด์ ๋ค์ features ์ ์ถ๊ฐํ์ฌ SSH ์๋ฒ๋ฅผ ์ค์นํ๊ณ ์์ํ ์ ์์ต๋๋ค devcontainer.json .
"features": {
...
"ghcr.io/devcontainers/features/sshd:1": {
"version": "latest"
},
...
}
ํ์ผ ๋ฐ ๊ธฐ๋ณธ ์ปจํ
์ด๋ ์ด๋ฏธ์ง์ devcontainer.json ๋ํ ์์ธํ ๋ด์ฉ์ "AUTOTITLE"์ ์ฐธ์กฐํ์ธ์.
GitHub Codespaces์(๋) ์ํํ ์ธ์ฆ ํ๊ฒฝ์ ์ ๊ณตํ๊ธฐ ์ํด ๋ก์ปฌ SSH ํค๋ฅผ ์๋์ผ๋ก ๋ง๋ญ๋๋ค. SSH๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ฅผ ์ฐธ์กฐํ์ธ์ gh codespace ssh.
Visual Studio Code์์ codespace ์ด๊ธฐ
gh codespace code -c CODESPACE-NAME
๋ก์ปฌ ์ปดํจํฐ์ VS Code์ด(๊ฐ) ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ "AUTOTITLE"์ ์ฐธ์กฐํ์ธ์.
JupyterLab์์ Codespace ์ด๊ธฐ
gh codespace jupyter -c CODESPACE-NAME
JupyterLab ์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ๋ codespace์ ์ค์นํด์ผ ํฉ๋๋ค. ๊ธฐ๋ณธ ์ปจํ
์ด๋ ์ด๋ฏธ์ง์๋ JupyterLab์ด ํฌํจ๋๋ฏ๋ก ๊ธฐ๋ณธ ์ด๋ฏธ์ง์์ ๋ง๋ codespace์๋ ํญ์ JupyterLab์ด ์ค์น๋ฉ๋๋ค. ๊ธฐ๋ณธ ์ด๋ฏธ์ง์ ๋ํ ์์ธํ ๋ด์ฉ์ "Introduction to dev containers" ๋ฐ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ devcontainers/images ์ฐธ์กฐํ์ธ์. ๊ฐ๋ฐ ์ปจํ
์ด๋ ๊ตฌ์ฑ์์ ๊ธฐ๋ณธ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ ํ์ผ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ฌ JupyterLab์ ghcr.io/devcontainers/features/python ์ค์นํ ์ ์์ต๋๋ค devcontainer.json . ์ต์
์ "installJupyterlab": trueํฌํจํด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ python ๊ธฐ๋ฅ์devcontainers/features ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ฐธ์กฐํ์ธ์.
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
์์ธํ ๋ด์ฉ์ "AUTOTITLE"์ ์ฐธ์กฐํ์ธ์.
์ก์ธ์ค codespace ๋ก๊ทธ
codespace์ ๋ํ ์์ฑ ๋ก๊ทธ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์ด ๋ช ๋ น์ ์ ๋ ฅํ๋ฉด SSH ํค์ ๋ํ ์ํธ๋ฅผ ์ ๋ ฅํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
gh codespace logs -c CODESPACE-NAME
๋ง๋ค๊ธฐ ๋ก๊ทธ์ ๋ํ ์์ธํ ๋ด์ฉ์ "GitHub Codespaces logs"์ ์ฐธ์กฐํ์ธ์.
์๊ฒฉ ๋ฆฌ์์ค ์ก์ธ์ค
GitHub CLI ํ์ฅ์ ์ฌ์ฉํ์ฌ codespace์ ๋ก์ปฌ ์ปดํจํฐ ๊ฐ์ ๋ธ๋ฆฌ์ง๋ฅผ ๋ง๋ค ์ ์์ผ๋ฉฐ, codespace๋ ์ปดํจํฐ์์ ์ก์ธ์คํ ์ ์๋ ์๊ฒฉ ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ํ์ฅ ์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ โGitHub CLI ์ฌ์ฉ์ ํตํ ์๊ฒฉ ๋ฆฌ์์ค ์ก์ธ์คโ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ฐธ๊ณ : GitHub CLI ํ์ฅ์ ํ์ฌ ๋ฒ ํ๋ก ์ ๊ณต๋๋ฉฐ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
codespace์ ์ปดํจํฐ ์ ํ ๋ณ๊ฒฝ
gh codespace edit -m MACHINE-TYPE-NAME
์์ธํ ๋ด์ฉ์ "Changing the machine type for your codespace"์ "GitHub CLI" ํญ์ ์ฐธ์กฐํ์ธ์.