게시판 만들기 6 - 깃허브 업로드

USAGI·2025년 8월 19일

1) .gitignore 수정

# --- OS / Tools ---
.DS_Store
*.log

# --- IntelliJ / STS / VSCode ---
.idea/
*.iml
*.ipr
*.iws
.sts4-cache/
.project
.classpath
.factorypath
.settings/
.vscode/
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

# --- Gradle / Build ---
.gradle/
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

# gradle wrapper 스크립트/설정은 반드시 커밋(무시하지 않음)
# gradlew, gradlew.bat, gradle/wrapper/gradle-wrapper.properties (자동 포함)

# --- Spring Boot secrets (샘플만 커밋, 실제 값은 제외) ---
src/main/resources/application*.yml
src/main/resources/application*.yaml
src/main/resources/application*.properties

# --- Frontend (Vite/React 등) ---
**/node_modules/
**/dist/
**/.vite/
**/.next/
**/build/        # CRA 등 프런트 빌드 산출물
**/.env
**/.env.*.local

# --- NetBeans (혹시 쓴다면) ---
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

# --- 문서(선택) ---
# HELP.md

1. 깃에 올라가는 것 ✅

다음은 커밋되어야 정상이야:

소스 코드

src/main/**, src/test/**

Gradle Wrapper 4총사 (필수!)

gradlew, gradlew.bat
gradle/wrapper/gradle-wrapper.jar
gradle/wrapper/gradle-wrapper.properties

프로젝트 메타

build.gradle, settings.gradle, gradle.properties(있다면)
README.md, LICENSE 등 문서

설정 샘플(민감정보 제거본)

예: src/main/resources/application-example.yml
(실제 비번 들어있는 application.yml은 커밋 금지!)

2. 무시되는 것 (커밋 안 됨) ❌

빌드/캐시

.gradle/, build/, out/, bin/

IDE/OS

.idea/, *.iml, *.ipr, *.iws, .vscode/, .DS_Store, *.log

시크릿(실제 운영값)

src/main/resources/application*.yml|yaml|properties
(→ 진짜 키/비번 들어간 파일은 전부 무시)

프런트엔드(있다면)

**/node_modules/, **/dist/, **/.vite/, **/.next/, **/build/
**/.env, **/.env.*.local

참고: .gitignore 안의 !gradle/wrapper/gradle-wrapper.jar 같은 느낌표는
“원래 무시하지만 이건 예외로 추적해”라는 뜻이야.

3. 민감정보 체크(초중요) 🧨

실제 비번/키 있는 application.yml 계열은 무시되어야 해.
커밋해야 할 건 샘플 파일만! (예: application-example.yml)
샘플에는 이렇게 가짜 값으로:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/board
    username: ${DB_USER}
    password: ${DB_PASS}

실제 값은 로컬 .zshrc 혹은 서버 환경변수로 관리! (또는 외부 시크릿 매니저)

2) 준비 (최초 1회만)

터미널 열고 프로젝트 루트 폴더로 이동:

cd /path/to/your/project
git --version || xcode-select --install
git config --global user.name  "YOUR_NAME"
git config --global user.email "you@example.com"

3) 로컬 Git 초기화 + 첫 커밋

git init                                 // 이 폴더를 Git으로 관리 시작할게!
                                         // 현재 폴더에 숨김폴더 .git/ 만들어서, 이후부터 버전 관리 시작 가능.

git add .                                // 현재 폴더 안에 있는 모든 변경된 파일을 "커밋 후보(스테이지)"로 올림.
git commit -m "기본 crud 구현 완료"         // 스테이지에 담긴 파일들을 하나의 버전으로 저장.
                                         // -m "메시지" → 어떤 변경인지 기록.

git branch -M main                       // 현재 브랜치 이름을 main으로 강제 변경
                                         // GitHub 기본 브랜치도 보통 main이라서 맞춰주는 것!

4) GitHub에서 새 저장소 만들기

웹에서 New repository → 예: boardstudy1
(가능하면 빈 저장소로 생성: README/License/.gitignore 체크 X)

5) 원격 연결 + 첫 푸시 (둘 중 택1)

A) HTTPS (간단)

// 원격 저장소(=GitHub 주소)를 origin이라는 이름으로 등록.
// origin은 그냥 별명인데, 보통 다 이걸 씀.
git remote add origin https://github.com/YOUR_ID/boardstudy1.git     

// 로컬 main 브랜치 → 원격(origin)의 main 브랜치로 전송.
// -u 옵션: --set-upstream 의 줄임말.
// 내 로컬 main 브랜치랑 원격 origin/main 브랜치랑 매칭시켜줘!
// 앞으로 origin main없이 git push만 쳐도 자동으로 같은 곳으로 보내짐.
git push -u origin main

→ 2단계 인증이면 비밀번호 대신 Personal Access Token 사용!

B) SSH

# 최초 1회만 키 생성/등록
ls -al ~/.ssh || true
ssh-keygen -t ed25519 -C "you@example.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
pbcopy < ~/.ssh/id_ed25519.pub  # 복사해서 GitHub > Settings > SSH keys 등록

# 푸시
git remote add origin git@github.com:YOUR_ID/boardstudy1.git
git push -u origin main

6) 이후 루틴 (매번 작업 끝나면)

git add .
git commit -m "남기고싶은 메세지"
git push

0개의 댓글