| name | git-teacher-setup |
| description | Initial Git/GitHub setup and project folder creation for non-developers โ handles install, GitHub connection, and first project scaffold. Auto-skips completed steps. Korean triggers โ "๊น ์์", "๊น ์ค์ ", "์ฒ์์ด์์", "git ์ค์น", "GitHub ์ฐ๊ฒฐ", "ํ๋ก์ ํธ ๋ง๋ค๊ธฐ", "๊น ์ธํ
", "์์ํ๊ธฐ". English triggers โ "start with git", "git setup", "connect GitHub", "new project". |
์์ํ๊ธฐ โ Phase 1 + 2 (๋ฐ๋ฅด๋ค ๊น์ ์ โ Codex)
Git/GitHub ์ด๊ธฐ ์ค์ (Phase 1)๊ณผ ํ๋ก์ ํธ ํด๋ ๋ง๋ค๊ธฐ(Phase 2)๋ฅผ ํ๋ฒ์ ์ฒ๋ฆฌํ๋ค.
์ด๋ฏธ ์๋ฃ๋ ๋จ๊ณ๋ ์๋์ผ๋ก ์คํตํ๋ค.
์ค๋ช
ยท๊ต์ก ์ git-teacher-help์ ยง๊ต์ก ์์น(shared/questioning-policy.md ยง3 Teaching)์ ๋ฐ๋ฅธ๋ค. ๊ฒ๋จน์ ์ด๋ณด์๊ฒ๋ ์์ท ๊ธ์ง โ ๋น์ ๋ก ์์ฌ์ํค๋ฉฐ ์ฌ๋ฌ ํด์ ๊ฑธ์ณ ์์ก๊ณ ๊ฐ๋ค(ยง2a). ๋ค๋ง ์ฌ์ฉ์๊ฐ ๊ทธ๋ฅ ๋นจ๋ฆฌ ์ธํ
๋ง ์ํ๋ฉด ๊ฐ์ํ์ง ๋ง๊ณ ๋จ๊ณ๋ง ์งํํ๋ค(ยง2c).
Codex CLI์๋ AskUserQuestion ์นด๋ UI๊ฐ ์๋ค. ๊ฒฐ์ ์ด ํ์ํ ๊ณณ์ shared/questioning-policy.md ยงA์ ์ฑํ
๋ฒํธํ ์ ํ์ง ๋ธ๋ก์ผ๋ก ๋ฌป๊ณ , ์ฌ์ฉ์์ ๋ค์ ์์ ํ
์คํธ ๋ต๋ณ์ ์ฝ๋๋ค.
Phase 1: ์ค๋นํ๊ธฐ
"Google Drive ์ฑ์ ์ค์นํ๊ณ ๊ตฌ๊ธ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํ๋ ๊ฒ๊ณผ ๊ฐ์์."
Step 1: ๋ณ๋ ฌ ์ํ ์์ง
๋ค์ ๋ช
๋ น์ ๋ณ๋ ฌ๋ก(๊ฐ๋ฅํ ํ ํจ๊ป) ์คํํ๋ค:
git --version 2>/dev/null
gh --version 2>/dev/null
git config --global user.name
git config --global user.email
gh auth status 2>&1
Step 2: ์๋ฃ๋ ๋จ๊ณ ์คํต + ๋ฏธ์๋ฃ ๋จ๊ณ ์งํ
์์ง ๊ฒฐ๊ณผ๋ฅผ ๋ถ์ํ์ฌ ์ด๋ฏธ ์๋ฃ๋ ํญ๋ชฉ์ ์ฒดํฌ ํ์๋ก ๋ณด์ฌ์ฃผ๊ณ , ๋ฏธ์๋ฃ ํญ๋ชฉ๋ง ์งํํ๋ค.
2a. Git ์ค์น (๋ฏธ์ค์น ์)
Git์ด ์ค์น๋์ด ์์ง ์์์. ์ค์นํ ๊ฒ์.
๋๋ผ์ด๋ธ๋ฅผ ์ฐ๋ ค๋ฉด ๋๋ผ์ด๋ธ ์ฑ์ด ํ์ํ ๊ฒ์ฒ๋ผ, Git๋ ์ฑ์ด ํ์ํด์.
macOS:
xcode-select --install
Windows: https://git-scm.com/download/win ์์ ์ค์น ํ์ผ์ ๋ค์ด๋ก๋ํ๋ค.
Linux:
sudo apt-get install git
์ค์น ํ ํ์ธ: git --version
2b. GitHub CLI (gh) ์ค์น (๋ฏธ์ค์น ์)
GitHub CLI๋ฅผ ์ค์นํ ๊ฒ์. GitHub์ ํ์ผ์ ์ฌ๋ฆฌ๋ ๋ฐ ํ์ํ ๋๊ตฌ์์.
macOS (Homebrew ์์ ๋):
brew install gh
Homebrew ์์ ๋: Homebrew ์ค์น๋ฅผ ๋จผ์ ์๋ดํ๋ค.
Windows:
winget install --id GitHub.cli
Linux:
(type -p wget >/dev/null || (sudo apt update && sudo apt-get install wget -y)) \
&& sudo mkdir -p -m 755 /etc/apt/keyrings \
&& out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \
&& cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y
๋๋ ๋ฐฐํฌํ ์ ์ฅ์์์ ๋ฐ๋ก ์ค์น ๊ฐ๋ฅํ ๊ฒฝ์ฐ: sudo apt install gh
์ค์น ํ ํ์ธ: gh --version
2c. Git ์ฌ์ฉ์ ์ ๋ณด ์ค์ (๋ฏธ์ค์ ์)
๋จผ์ ๋น์ ๋ก ์์ฌ์ํจ๋ค:
Git์ ์ด๋ฆ๊ณผ ์ด๋ฉ์ผ์ ๋ฑ๋กํด์ผ ํด์.
๊ตฌ๊ธ ๊ณ์ ์ ๋ง๋ค ๋ ์ด๋ฆ์ ์
๋ ฅํ๋ ๊ฒ๊ณผ ๊ฐ์์.
ํ์ผ์ ์ ์ฅํ ๋ "๋๊ฐ ์์ ํ๋์ง" ๊ธฐ๋กํ๋ ๋ฐ ์ฐ์ฌ์.
๊ทธ๋ค์ ์ฑํ
์ ๋ฒํธํ ์ ํ์ง๋ก ๋ฌป๋๋ค (shared/questioning-policy.md ยงA):
์ง๋ฌธ: Git์ ๋ฑ๋กํ ์ด๋ฆ๊ณผ ์ด๋ฉ์ผ์ ์ด๋ป๊ฒ ํ ๊น์?
1. ์ง์ ์
๋ ฅ โ ์ด๋ฆ/์ด๋ฉ์ผ์ ํ ์ค๋ก ์๋ ค์ฃผ์ธ์ (์: ํ๊ธธ๋ / hong@email.com)
2. GitHub ๊ณ์ ๊ณผ ๋์ผ โ GitHub ๋ก๊ทธ์ธ ํ ์๋์ผ๋ก ๊ฐ์ ธ์ฌ๊ฒ์
3. ๋ฌธ์ฅ์ผ๋ก ์ง์ ์์ ์์ฒญ
(๋ชจ๋ฅด๋ฉด 1๋ฒ์ผ๋ก ์งํํ๊ฒ ์ต๋๋ค.)
์
๋ ฅ์ ๋ฐ์ผ๋ฉด:
git config --global user.name "์ฌ์ฉ์ ์ด๋ฆ"
git config --global user.email "์ฌ์ฉ์ ์ด๋ฉ์ผ"
2d. GitHub ๋ก๊ทธ์ธ (๋ฏธ๋ก๊ทธ์ธ ์)
GitHub์ ๋ก๊ทธ์ธํ ๊ฒ์. ๊ตฌ๊ธ ๊ณ์ ์ผ๋ก ๋๋ผ์ด๋ธ์ ๋ก๊ทธ์ธํ๋ ๊ฒ๊ณผ ๊ฐ์์.
๋ธ๋ผ์ฐ์ ์ฐฝ์ด ์ด๋ฆฌ๋ฉด ๋ก๊ทธ์ธํ๊ณ ์น์ธํด์ฃผ์ธ์.
gh auth login --web --git-protocol https
๋ธ๋ผ์ฐ์ ์ธ์ฆ์ ์ฌ์ฉ์๊ฐ ์ง์ ์๋ฃํด์ผ ํ๋ค. ๋ช
๋ น์ ๋์ด(๋๋ ์๋ดํ) ๋ค ์ธ์ฆ์ด ๋๋ฌ๋์ง ํ์ธํ๊ณ ๋ฉ์ถ๋ค. ์ธ์ฆ์ด ๋๋ ๊ฒ์ฒ๋ผ ๋จ์ ํ์ง ์๋๋ค.
Step 3: Phase 1 ์๋ฃ ํ์ธ
์ค๋น ์๋ฃ!
- Git ์ค์น๋จ (v2.xx)
- GitHub ๋ก๊ทธ์ธ๋จ (๊ณ์ : username)
์ด์ ํ๋ก์ ํธ ํด๋๋ฅผ ๋ง๋ค ์ ์์ด์.
Phase 2: ํด๋ ๋ง๋ค๊ธฐ
"Google Drive์ ์ ๊ณต์ ํด๋๋ฅผ ๋ง๋๋ ๊ฒ๊ณผ ๊ฐ์์."
Step 4: ํ๋ก์ ํธ ์ ํ
์ฑํ
์ ๋ฒํธํ ์ ํ์ง๋ก ๋ฌป๋๋ค (shared/questioning-policy.md ยงA):
์ง๋ฌธ: ํ๋ก์ ํธ ํด๋๋ฅผ ์ด๋ป๊ฒ ๋ง๋ค๊น์?
1. ์ ํ๋ก์ ํธ ์์ํ๊ธฐ โ ๋น ํด๋๋ฅผ ๋ง๋ค์ด์
2. ๊ธฐ์กด ํ๋ก์ ํธ ๊ฐ์ ธ์ค๊ธฐ โ GitHub์ ์๋ ํด๋๋ฅผ ๋ณต์ฌํด์
3. ํ์ฌ ํด๋๋ฅผ ํ๋ก์ ํธ๋ก ๋ง๋ค๊ธฐ โ ์ง๊ธ ์ด ํด๋๋ฅผ Git์ผ๋ก ๊ด๋ฆฌํด์
4. ๋ฌธ์ฅ์ผ๋ก ์ง์ ์์ ์์ฒญ
(๋ชจ๋ฅด๋ฉด 1๋ฒ์ผ๋ก ์งํํ๊ฒ ์ต๋๋ค.)
์ ํ 1: ์ ํ๋ก์ ํธ ์์ํ๊ธฐ
์ฑํ
์์ ํ๋ก์ ํธ ์ด๋ฆ์ ๋ฐ๋๋ค. ์ด์ด์ ๊ณต๊ฐ ์ฌ๋ถ๋ฅผ ยงA ๋ฒํธ ๋ธ๋ก์ผ๋ก ํ์ธํ๋ค:
์ง๋ฌธ: ์ด ํ๋ก์ ํธ๋ฅผ ๊ณต๊ฐ๋ก ๋ง๋ค๊น์, ๋น๊ณต๊ฐ๋ก ๋ง๋ค๊น์?
1. ๋น๊ณต๊ฐ(private) โ ๋๋ง ๋ณผ ์ ์์ด์ (์ถ์ฒ)
2. ๊ณต๊ฐ(public) โ ๋๊ตฌ๋ ๋ณผ ์ ์์ด์
3. ๋ฌธ์ฅ์ผ๋ก ์ง์ ์์ ์์ฒญ
mkdir {project-name} && cd {project-name}
git init
gh repo create {project-name} --{public|private} --source=. --remote=origin --push
์ฌ์ฉ์๊ฐ ๊ณต๊ฐ๋ฅผ ๋ช
ํํ ๊ณ ๋ฅด์ง ์์์ผ๋ฉด ์ ๋ ๊ณต๊ฐ๋ก ๋ง๋ค์ง ์๋๋ค (๊ธฐ๋ณธ์ ๋น๊ณต๊ฐ).
์ ํ 2: ๊ธฐ์กด ํ๋ก์ ํธ ๊ฐ์ ธ์ค๊ธฐ
์ฑํ
์์ GitHub URL ๋๋ ์ ์ฅ์ ์ด๋ฆ์ ๋ฐ๋๋ค.
์ฌ์ฉ์ ์
๋ ฅ์ ๋ถ์ํ์ฌ ์ ์ ํ ๋ช
๋ น์ ์คํํ๋ค:
owner/repo ํํ: gh repo clone {owner/repo}
https://github.com/... ํํ: git clone {URL}
git@github.com:... ํํ: git clone {URL}
์ ํ 3: ํ์ฌ ํด๋๋ฅผ ํ๋ก์ ํธ๋ก ๋ง๋ค๊ธฐ
๊ณต๊ฐ ์ฌ๋ถ๋ฅผ ยงA ๋ฒํธ ๋ธ๋ก์ผ๋ก ํ์ธํ๋ค (์ ํ 1๊ณผ ๋์ผ, ๊ธฐ๋ณธ์ ๋น๊ณต๊ฐ).
git init
gh repo create {folder-name} --{public|private} --source=. --remote=origin --push
Step 5: Phase 2 ์๋ฃ ํ์ธ
ํด๋ ์ค๋น ์๋ฃ!
- ๋ด ์ปดํจํฐ: /Users/me/my-project
- ํด๋ผ์ฐ๋: https://github.com/username/my-project
์ด ๋ ๊ณณ์ด ์ฐ๊ฒฐ๋์ด ์์ด์. ๋๋ผ์ด๋ธ์ "๋๊ธฐํ ํด๋"์ ๋น์ทํ์ฃ .
๋จ, ์๋ ๋๊ธฐํ๋ ์ ๋ผ์ โ ์ง์ "์ ์ฅ"ํ๊ณ "์ฌ๋ ค์ผ" ํด์.
ํ์ผ์ ์์ ํ ๋ค "์ ์ฅํด์ค"๋ผ๊ณ ํ๋ฉด ๋ฉ๋๋ค.
์ด๋ฏธ ๋ชจ๋ ๊ฒ ์ค์ ๋ ๊ฒฝ์ฐ
๋ชจ๋ ๊ฒ์ฌ๊ฐ ํต๊ณผ๋๋ฉด:
์ด๋ฏธ ๋ค ์ค๋น๋์ด ์์ด์!
- Git ์ค์น๋จ (v2.xx)
- GitHub ๋ก๊ทธ์ธ๋จ (๊ณ์ : username)
- ํ๋ก์ ํธ ์ฐ๊ฒฐ๋จ: https://github.com/username/my-project
๋ฐ๋ก ์์
์ ์์ํ ์ ์์ด์.
"์ํ ํ์ธ"์ผ๋ก ํ์ฌ ์ํ๋ฅผ ๋ณผ ์ ์๊ณ ,
ํ์ผ์ ์์ ํ ๋ค "์ ์ฅํด์ค"๋ก ์ ์ฅํ ์ ์์ด์.
Safety
- ๋ธ๋ผ์ฐ์ ์ธ์ฆ์ ์์๋ก ์๋ฃ๋ ๊ฒ์ผ๋ก ๊ฐ์ ํ์ง ์๋๋ค โ ์ธ์ฆ ๋ช
๋ น์ ๋์ฐ๊ฑฐ๋ ์๋ดํ ๋ค ๋ฉ์ถ๋ค.
- ์ฌ์ฉ์๊ฐ ๊ณต๊ฐ๋ฅผ ๋ช
ํํ ๊ณ ๋ฅด์ง ์์ผ๋ฉด ๊ณต๊ฐ ์ ์ฅ์๋ฅผ ๋ง๋ค์ง ์๋๋ค.
- GitHub ์
๋ก๋๋ ์๋์์ ์ค๋ช
ํ๋ค: ์ ์ฅ(commit) โ ์ฌ๋ฆฌ๊ธฐ(push).