Git / PR 워크플로우

1. 로컬 환경 셋업

처음 한 번만 수행하면 됩니다.

# 레포지토리 클론
gh repo clone SoongSanTech/SoongSanTech.github.io
cd SoongSanTech.github.io

# Python 가상환경 + MkDocs 의존성 설치
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

2. 일상 작업 흐름

2.1 최신 main 동기화

git checkout main
git pull origin main

2.2 작업 브랜치 생성

브랜치 명명 규칙:

종류 패턴 예시
위키 추가/수정 wiki/<주제> wiki/add-bc-theory
R&D 로그 추가 rnd/<날짜-슬러그> rnd/2026-05-03-bc-first-train
사이트 설정/스타일 chore/<내용> chore/update-mkdocs-yml
버그 수정 fix/<내용> fix/broken-mermaid-link
git checkout -b wiki/add-bc-theory

2.3 글 작성 + 로컬 미리보기

# 로컬 서버 실행 (변경사항 자동 리로드)
mkdocs serve

# 브라우저에서 http://127.0.0.1:8000 접속하여 확인

2.4 커밋 메시지 컨벤션

Conventional Commits 규약을 따릅니다.

타입 의미
feat 새 문서 또는 기능 추가
fix 오타·링크·버그 수정
docs 위키 또는 R&D 로그 변경
chore 빌드/설정/스타일 변경
refactor 문서 구조 재조정

예시:

git commit -m "docs(wiki): add behavioral cloning theory page"
git commit -m "feat(rnd): add Phase 2-A first training experiment log"
git commit -m "fix(wiki): correct broken link in carla-simulator.md"

2.5 푸시 + Pull Request 생성

git push -u origin wiki/add-bc-theory

# PR 생성
gh pr create \
  --title "docs(wiki): add behavioral cloning theory page" \
  --body "BC 이론 페이지 추가. 수식과 예시 코드 포함."

3. PR 리뷰 정책

항목 정책
최소 리뷰어 1명 (2인 팀 기준)
자동 검사 GitHub Actions의 mkdocs build 통과 필수
머지 방식 Squash and Merge (히스토리 깔끔 유지)
머지 후 브랜치 자동 삭제

4. 자동 배포

main 브랜치에 머지되면 GitHub Actions가 자동으로 사이트를 빌드하여 GitHub Pages에 배포합니다. 보통 머지 후 1~3분 이내에 https://soongsantech.github.io에 반영됩니다.

5. 충돌 해결

자주 발생하지 않지만, 동시에 같은 파일을 수정한 경우:

git checkout main
git pull origin main
git checkout your-branch
git rebase main
# 충돌 해결 후
git add .
git rebase --continue
git push -f origin your-branch

6. 자주 묻는 질문

??? question “로컬 미리보기에서는 잘 보이는데 배포 후 깨져요” 절대 경로(/...)를 사용했는지 확인하세요. MkDocs는 상대 경로(../, ./)를 권장합니다.

??? question “이미지가 안 보여요” 이미지는 반드시 docs/assets/img/ 하위에 두어야 합니다. 그 외 위치는 빌드에서 제외됩니다.

??? question “수식이 렌더링되지 않아요” \(...\) (인라인) 또는 $$...$$ (블록)을 사용하세요. $...$ (인라인)은 비활성화되어 있습니다.