0. 요약
로컬에서 만든 Next.js 포트폴리오 프로젝트를 GitHub에 업로드하는 과정과,
그 과정에서 막혔던 포인트들을 정리한다.
1. 개발 환경
2. GitHub 가입 & 저장소 생성
3. 로컬 프로젝트를 GitHub에 올리기
3-1. Git 설치 (Windows에서 필수)
1) 에러: Git 미설치
3-2. Git으로 프로젝트 관리 시작하기
1) Git 초기화
2) 파일을 커밋 대상으로 등록
3) 첫 번째 커밋 생성
4) 에러: 커밋이 안 될 때 (Author identity unknown)
3-3. GitHub 저장소와 연결
1) 기본 브랜치 이름을 main으로 통일
2) GitHub 저장소 연결
3-4. GitHub로 업로드(push)
1) 업로드
2) 에러: src refspec main does not match any
3) 에러: 이메일 프라이버시(GH007)
4. 최종 완료 체크사항 / 결과
1. 개발 환경
- OS: Windows
- 에디터: Cursor
- 프레임워크: Next.js (app router)
- GitHub: 신규 가입
2. GitHub 가입 & 저장소 생성
- GitHub 회원가입/로그인
- Creat New repository
- Repository name: portfolio
- GitHub는 코드를 올려두는 원격 저장소
- 로컬 프로젝트를 올리려면 **빈 저장소(repo)**가 먼저 필요함
3. 로컬 프로젝트를 GitHub에 올리기
- 프로젝트 폴더에서 실행
- 전체 명령어
git init
git add .
git commit -m "init portfolio"
git branch -M main
git remote add origin <깃허브 주소>
git push -u origin main
- 최종 완료: GitHub 웹에서 새로고침했을 때 파일들이 보인다
3-1. Git 설치 (Windows에서 필수)
pwd // 지금 터미널이 어느 폴더를 보고 있는지 확인
git --version // Git이 설치/인식되는지 확인
1) 에러: Git 미설치

'git' 용어가 cmdlet 또는 실행할 수 있는 프로그램으로 인식되지 않음
- 무작정 "get init"을 쳤다가 에러를 맞닥뜨리고 설치했다..
원인
- Git이 PC에 설치되어 있지 않음
해결
- Git for Windows 설치
- 설치 후 터미널 재시작
확인 명령어
git --version
Git이 정상 설치/인식되는지 확인하는 명령어
버전 숫자가 나오면 설치 완료
3-2. Git으로 프로젝트 관리 시작하기
1) Git 초기화
git init
의미
- 이 폴더를 Git으로 관리하겠다고 선언
- .git 폴더가 생성됨
2) 파일을 커밋 대상으로 등록
git add .
의미
- 현재 폴더 안의 모든 변경 파일을 저장(커밋) 후보로 올림
- . 은 “전체”라는 뜻
- 올릴 파일 상태 확인하고 싶으면: git status
3) 첫 번째 커밋 생성
git commit -m "init portfolio"
의미
- 지금 상태를 하나의 버전(스냅샷)으로 저장
- -m은 메시지(message) 옵션
4) 에러: 커밋이 안 될 때 (Author identity unknown)

Author identity unknown
Please tell me who you are.
원인
- Git이 “이 코드를 누가 만들었는지(작성자 이름/이메일)” 모름
해결 (한 번만 설정)
git config --global user.name "bysumcookies"
git config --global user.email "bysumcontact@gmail.com"
의미
- 모든 Git 커밋에 사용할 작성자 정보 설정
- --global → 이 PC 전체에 적용
- 그리고 다시:
git commit -m "init portfolio"

3-3. GitHub 저장소와 연결
1) 기본 브랜치 이름을 main으로 통일
git branch -M main
의미
- 기본 브랜치를 main으로 변경
- GitHub 기본 브랜치 이름과 맞추기 위함
2) GitHub 저장소 연결
git remote add origin https://github.com/아이디/레포이름.git
의미
- origin이라는 이름으로
GitHub 원격 저장소 주소를 등록 - 확인:
git remote -v
- origin 주소가 보이면 완료
3-4. GitHub로 업로드(push)
1) 업로드
git push -u origin main
의미
- 로컬의 main 브랜치를
- GitHub(origin)의 main 브랜치로 업로드
- -u 옵션은 이후부터 git push만 쳐도 되게 설정
2) 에러: src refspec main does not match any

원인: 커밋이 없어서(main 브랜치에 올릴 게 없음)
해결:
- git add . → git commit -m "init portfolio" 먼저 성공시킨 뒤 다시 push
- 커밋 실패 상태였는데 모르고 계속 진행해서 에러가 나옴
3) 에러: 이메일 프라이버시(GH007)

GH007: Your push would publish a private email address
원인
- 커밋에 개인 이메일이 포함되어 있어서
- GitHub가 푸시를 차단
해결
- GitHub에서 noreply 이메일 확인
- Git 설정 변경
git config --global user.email "12345678+아이디@users.noreply.github.com"
3. 기존 커밋 수정
git commit --amend --no-edit --reset-author
4. 다시 푸시
git push -u origin main
4. 최종 완료 체크사항 / 결과
- GitHub 레포 새로고침했을 때 파일들이 보인다
- GitHub 저장소에 코드 업로드 완료
- 다음 단계: Vercel을 이용한 배포
'Study Notes' 카테고리의 다른 글
| Git/GitHub · Vercel · DNS : ‘배포 URL’에서 ‘내 도메인’으로 (0) | 2026.02.01 |
|---|---|
| 포트폴리오 배포 준비 ② ㅡ Vercel 배포 & 도메인 구조 이해하기 (0) | 2026.02.01 |
| React · Node · Next.js 관계 정리 : ‘파일로 여는 웹’에서 ‘프로젝트를 실행하는 웹’으로 (1) | 2026.01.15 |
| React : SPA/MPA, React, JSX, 컴포넌트 개념 정리 (0) | 2026.01.06 |
| JavaScript 기초 : 기본 문법 요약 · DOM 조작 (0) | 2025.12.28 |