첫 번째 커밋 만들기
실제로 Git 저장소를 만들고, 파일을 추가해서 첫 번째 버전을 커밋까지 직접 해봅니다.
git init으로 저장소를 초기화할 수 있다git add → git commit흐름으로 버전을 만들 수 있다git log로 커밋 이력을 확인할 수 있다- 좋은 커밋 메시지를 작성하는 법을 안다
.gitignore로 추적하지 않을 파일을 설정할 수 있다
1. 실습 준비
실습용 프로젝트 폴더를 만들고 시작합니다. 오늘 만들 것은 "나의 첫 번째 Git 프로젝트"입니다.
# 프로젝트 폴더 생성
$ mkdir my-first-git
$ cd my-first-git
# 현재 위치 확인
$ pwd
/c/Users/사용자이름/my-first-git
2. git init — 저장소 초기화
git init은 현재 폴더를 Git 저장소로 만드는 명령어입니다. 프로젝트 시작 시 딱 한 번만 실행합니다.
$ git init
Initialized empty Git repository in /c/Users/.../my-first-git/.git/
3. 첫 번째 버전 만들기
파일을 만들고, Staging Area에 올리고, 커밋하는 전체 흐름을 실습합니다.
STEP 1 — 파일 생성
# README.md 파일 생성
$ touch README.md
# 파일 상태 확인
$ git status
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md ← Git이 아직 모르는 상태!
STEP 2 — Staging Area에 추가
# README.md를 Staging Area로 이동
$ git add README.md
# 상태 확인
$ git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md ← 이제 Staging Area에 있음!
STEP 3 — 커밋으로 버전 저장
# 첫 번째 커밋 생성
$ git commit -m "feat: README.md 추가"
[main (root-commit) a3f82bc] feat: README.md 추가
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README.md
# 커밋 후 상태 확인 → 깨끗한 상태!
$ git status
On branch main
nothing to commit, working tree clean
STEP 4 — 두 번째 버전 만들기
파일을 수정하고 두 번째 커밋을 만들어 버전이 쌓이는 것을 확인합니다.
# README.md 파일에 내용 추가
$ echo "# 나의 첫 번째 프로젝트" > README.md
# 수정된 파일 확인
$ git status
On branch main
Changes not staged for commit:
modified: README.md ← Modified 상태!
$ git add README.md
$ git commit -m "docs: README에 프로젝트 제목 추가"
[main b7d9e1f] docs: README에 프로젝트 제목 추가
1 file changed, 1 insertion(+)
4. 좋은 커밋 메시지 작성법
커밋 메시지는 나중에 이 변경이 왜 일어났는지를 전달하는 문서입니다.
Conventional Commits — 타입 접두사
| 타입 | 의미 | 예시 |
|---|---|---|
feat: |
새로운 기능 추가 | feat: 다크모드 추가 |
fix: |
버그 수정 | fix: 로그인 오류 수정 |
docs: |
문서 수정 | docs: API 설명 추가 |
style: |
코드 스타일 변경 | style: 들여쓰기 정리 |
refactor: |
코드 리팩토링 | refactor: 함수 분리 |
chore: |
빌드/설정 변경 | chore: .gitignore 추가 |
5. .gitignore — 무시할 파일 설정
비밀번호, API 키, 빌드 결과물처럼 Git으로 관리하면 안 되는 파일이 있습니다. .gitignore에 등록하면 Git이 무시합니다.
# .gitignore 파일 생성
$ touch .gitignore
# 환경변수 파일 (비밀번호, API키 등)
.env
.env.local
# 운영체제 파일
.DS_Store # macOS
Thumbs.db # Windows
# 빌드 결과물
/dist/
/build/
/node_modules/
# 로그 파일
*.log
# 특정 파일
secret.txt
gitignore.io (toptal.com/developers/gitignore) 에서 프로젝트 환경을 선택하면 .gitignore 파일을 자동 생성해줍니다!
git init을 실행하면 어떤 변화가 생기는지 설명할 수 있다git status 결과에서 각 항목의 의미를 이해한다.gitignore를 만들고 특정 파일이 무시되는 것을 확인했다git init
git add 파일명
git add .
git commit -m "메시지"
git log
git log --oneline
이론을 따라합니다. 물론 커밋 메시지 콘벤션(feat:/fix:/docs: 등)과 .gitignore도
직접 만들어보세요.
이론의 STEP 1과 동일합니다. 이번에는 나만의 포트폴리오 프로젝트로 시작합니다.
$ mkdir my-portfolio && cd my-portfolio
$ git init
Initialized empty Git repository in .../my-portfolio/.git/
이론의 커밋 메시지 표(커뮨던션 컴밋)를 사용합니다. 파일마다 관련 있는 타입 접두사를 됐어 커밋합니다.
$ touch README.md index.html style.css
# docs: 로 README 커밋
$ git add README.md
$ git commit -m "docs: README 추가"
# feat: 로 메인 페이지 커밋
$ git add index.html
$ git commit -m "feat: 메인 페이지 추가"
# style: 로 CSS 커밋
$ git add style.css
$ git commit -m "style: 기본 CSS 추가"
이론에서 배운 log 명령어로 커밋이 3개 쌓인 것을 눈으로 확인합니다.
$ git log --oneline
c3d9f1a style: 기본 CSS 추가 ← 가장 최신
8b2e4d7 feat: 메인 페이지 추가
a3f82bc docs: README 추가 ← 첫 커밋
이론의 .gitignore 다이어그램과 동일합니다. 실제로 .env 파일을 만들고 무시되는지 확인합니다.
# .env 파일 생성 (비밀번호 종류라고 가정)
$ touch .env
$ git status
Untracked files:
.env ← 아직은 Git이 보임
# .gitignore 생성 후 .env 추가
$ touch .gitignore
$ echo ".env" >> .gitignore
$ git status
Untracked files:
.gitignore ← .env는 무시됨!
이론의 STEP4(두 번째 커밋)! README에 프로젝트 설명을 넣고 Modified → add → commit 흐름을 다시 한 번 연습합니다.
$ echo "# 나의 포트폴리오" > README.md
$ git status
modified: README.md ← Modified!
$ git add README.md
$ git commit -m "docs: README에 프로젝트 제목 추가"
$ git log --oneline
매니저 docs: README에 프로젝트 제목 추가 ← HEAD
f2e1b9c chore: .gitignore 추가
c3d9f1a style: 기본 CSS 추가
8b2e4d7 feat: 메인 페이지 추가
a3f82bc docs: README 추가
git commit 했는데 "Please tell me who you
are" 오류가 나요Git에 user.name과 user.email이 설정되지 않았습니다.
git config --global user.name "이름"과
git config --global user.email "이메일"을 먼저 실행하세요 (Ch.02 세팅 내용).
바로 직전 커밋의 메시지만 수정할 수 있습니다.
git commit --amend -m "수정된 메시지"를 실행하세요. GitHub에
push하기 전에만 해야 합니다!
파일을 이미 git add한 적이 있다면 Git이 계속 추적합니다.
git rm --cached 파일명으로 해당 파일을 Git 추적에서 제외한 뒤
.gitignore에 추가하세요.
git add . vs git add 파일명 언제
쓰나요?두 명령어의 차이를 모으는 질문입니다.
git add .은 모든 변경 파일을 한 번에 add,
git add 파일명은 특정 파일만 add합니다. 관련 파일끼리 따로 커밋할 때는 파일명을 지정하세요.