# GitHub에 올리기

GitHub는 작업 파일을 시간순으로 저장해 두는 곳입니다. 오늘은 **강사 저장소를 내 계정으로 복사(포크)해서** 그 안에서 작업하고, 고칠 때마다 기록을 남기는 것까지 합니다. 포크한 뒤로는 내 저장소이므로, 개발은 각자 자기 포크에서 합니다.

## 용어 네 개만

- **저장소(repository)** — 프로젝트 폴더 하나.
- **포크(fork)** — 남의 저장소를 통째로 내 계정에 복사하기. 복사한 뒤로는 내 것이라 마음대로 고쳐도 됩니다.
- **클론(clone)** — 내 저장소를 내 컴퓨터로 내려받기.
- **커밋(commit)** — "여기까지 저장" 도장. 메시지 한 줄이 붙습니다.
- **푸시(push)** — 내 컴퓨터의 커밋을 GitHub로 올리기.

## 1. 포크하기

1. [github.com/joonhyungbae/opencircuit](https://github.com/joonhyungbae/opencircuit) 를 엽니다.
2. 오른쪽 위 **Fork** 버튼.
3. **Repository name** 을 자기 것으로 바꿉니다 — 예: `sohee-opencircuit`, `tide-machine`. 영문·숫자·하이픈으로 짓는 게 안전합니다.
4. **Create fork**.

`https://github.com/내아이디/내가정한이름` 이 생겼으면 끝입니다. 이제 이 저장소는 내 것입니다.

> [!NOTE]
> 이름을 바꾸는 이유: 컴퓨터에 이미 `opencircuit` 이라는 이름의 폴더가 있습니다(도구 설치본). 같은 이름이면 헷갈립니다.

## 2. 내 컴퓨터로 내려받기 (clone)

Cursor 시작 화면의 **Clone Repo**, 또는 터미널(<kbd>Ctrl/⌘</kbd>+<kbd>`</kbd>)에서:

```bash
cd ~/Documents
git clone https://github.com/내아이디/내가정한이름.git
```

Windows 문서 폴더는 `cd ~/Documents` 대신 파일 탐색기에서 `문서` 폴더를 연 뒤 Cursor로 그 폴더를 열어도 됩니다.

내려받아진 폴더를 **Cursor로 엽니다**. 오늘 작업은 전부 이 폴더 안에서 합니다.

> [!WARNING]
> 홈 폴더의 숨은 `.opencircuit` 폴더는 **건드리지 마세요.** 설치 스크립트가 관리하는 도구 설치본이고, 실행할 때마다 자동으로 최신으로 덮어씁니다. 여기서 작업하면 다음 실행 때 날아가거나 업데이트가 실패합니다.

## 3. 이름 알려주기 (처음 한 번)

커밋에는 누가 했는지가 붙습니다. 터미널에서 한 번만:

```bash
git config --global user.name "내 이름"
git config --global user.email "GitHub에 쓴 이메일"
```

## 4. 내 작업 파일 만들기

Cursor 채팅(<kbd>Ctrl/⌘</kbd>+<kbd>L</kbd>)에 시켜 봅니다. 파일은 **폴더 맨 위(루트)** 에 만들게 하세요 — 그래야 나중에 Pages 주소가 바로 열립니다.

> 폴더 맨 위에 index.html 을 만들어 줘. 내 이름과 오늘 만들 것 한 줄이 적힌 페이지야.

## 5. 커밋하고 올리기

Cursor 왼쪽 **Source Control**(가지 모양) 아이콘 → 메시지 한 줄 쓰고 **✓** → **Sync**. 터미널이 싫으면 이것만으로 끝납니다.

터미널로 하려면:

```bash
git add .
git commit -m "무엇을 바꿨는지 한 줄"
git push
```

> [!NOTE]
> 처음 `push`(Sync) 할 때 브라우저가 열리며 GitHub 로그인을 요구합니다. 로그인하면 끝. 다음부터는 묻지 않습니다. 안 열리거나 실패하면 → [git push 로그인 실패](https://opencircuit.club/wiki/stuck/git-push-auth).

GitHub 페이지를 새로고침해서 방금 만든 `index.html` 이 보이면 성공입니다. **최소 목표(push 1회)를 여기서 달성한 것입니다.**

## 헷갈리면 — 폴더 세 개 구분

| 어디 | 무엇 | 내가 고치나 |
|---|---|---|
| 홈의 숨은 `.opencircuit` | 도구 설치본(자동 업데이트) | ❌ |
| 문서 폴더의 내 포크 | **오늘 작업하는 곳** | ✅ |
| 문서 폴더의 `OpenCircuit` | 전시장(gallery)이 읽는 작품 폴더 | 이후 회차 |

## 인터넷에 공개하기 (선택)

내 저장소 **Settings → Pages → Branch: main / (root) → Save**. 1~2분 뒤 `https://내아이디.github.io/내가정한이름/` 에서 아까 만든 페이지가 열립니다. 다음 회차부터 만든 것을 서로 보여 줄 때 이 주소를 씁니다.

## 원본이 업데이트되면 (이후 회차)

강사 저장소에 도구가 추가되면 내 포크에는 자동으로 오지 않습니다. 내 저장소 위쪽의 **Sync fork → Update branch** 를 누르면 따라옵니다. 오늘은 하지 않아도 됩니다.

> [!TODO]
> 수업 전 확인: Windows 참가자의 git 자격 증명 관리자 동작, 조직 계정으로 가입한 사람 처리, 포크 직후 Pages 활성화까지 걸리는 시간.
