10강

.gitignore와 실전 팁

3 조회 1

.gitignore로 추적 불필요한 파일을 관리하고, stash·reset·revert 등 실수 복구 명령어와 alias 설정 등 Git을 200% 활용하는 실전 팁을 총정리한다.

.gitignore — 추적하지 않을 파일 지정

.gitignore 파일에 패턴을 작성하면 Git이 해당 파일을 추적하지 않습니다. 민감한 정보(API 키, 비밀번호), 빌드 결과물, 운영체제 임시 파일 등을 커밋에서 제외할 때 필수입니다.

.gitignore 패턴 문법

# 주석
.env              # 특정 파일
.env.*            # 와일드카드 (.env.local, .env.production 등)
*.log             # 확장자로 모두 제외
build/            # 디렉토리 전체 제외 (뒤에 / 필수)
dist/
node_modules/
!important.log    # ! → 예외: 이 파일은 추적

# 특정 디렉토리 내 파일만
src/**/*.test.js

# 이름에 관계없이 하위 전체
**/temp/

언어별 .gitignore 예시

# Node.js / Next.js
node_modules/
.next/
.env.local
.env.*.local
dist/
*.log
.DS_Store

# Python
__pycache__/
*.pyc
*.pyo
.venv/
.env
dist/
*.egg-info/

# Java
target/
*.class
*.jar
.idea/

# gitignore.io — 자동 생성 사이트
# https://www.toptal.com/developers/gitignore
# 예: node,nextjs,macos 검색 → 붙여넣기

이미 추적 중인 파일 제외하기

# .gitignore에 추가해도 이미 git add된 파일은 계속 추적됨
# 추적 중단 (파일은 유지, git 캐시만 삭제)
git rm --cached .env.local
git rm --cached -r node_modules/

# 이후 커밋
git commit -m "chore: .gitignore 적용"

stash — 임시 저장

급하게 브랜치를 바꿔야 하는데 커밋하기 애매한 상황에 사용합니다. 변경사항을 임시로 쌓아두고 나중에 꺼낼 수 있습니다.

# 현재 변경사항 임시 저장
git stash
git stash push -m "로그인 폼 WIP"  # 메시지 포함

# stash 목록 확인
git stash list
# stash@{0}: On main: 로그인 폼 WIP
# stash@{1}: On feature/search: 검색 임시

# 가장 최근 stash 적용 (스택에서 유지)
git stash apply

# 가장 최근 stash 꺼내기 (스택에서 제거)
git stash pop

# 특정 stash 적용
git stash apply stash@{1}

# stash 삭제
git stash drop stash@{0}
git stash clear  # 전체 삭제

실수 복구 — reset vs revert

# 마지막 커밋 취소 (변경사항은 스테이징 상태로 유지)
git reset --soft HEAD~1

# 마지막 커밋 취소 (변경사항은 unstaged 상태로)
git reset HEAD~1

# 마지막 커밋 완전 삭제 (변경사항도 사라짐, 주의!)
git reset --hard HEAD~1

# 특정 커밋을 되돌리는 새 커밋 생성 (공유 브랜치에서 안전)
git revert abc1234
git revert HEAD    # 바로 직전 커밋 되돌리기
명령이력 변경파일 변경사용 상황
reset --soft커밋 삭제스테이징 유지커밋 메시지 수정
reset커밋 삭제워킹 디렉토리로컬 작업 되돌리기
reset --hard커밋 삭제삭제됨!완전 초기화(신중히)
revert새 커밋 추가되돌아감push 후 공유된 커밋

alias — 자주 쓰는 명령어 단축키

# 전역 git config에 alias 등록
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.lg "log --oneline --graph --decorate --all"

# 사용
git st          # git status
git co main     # git checkout main
git lg          # 브랜치 트리 그래프 출력

# ~/.gitconfig 파일로 직접 수정
[alias]
  st = status
  co = checkout
  lg = log --oneline --graph --decorate --all
  undo = reset HEAD~1 --mixed
  unstage = restore --staged

유용한 명령어 모음

# 특정 파일의 변경 이력
git log --follow -p src/auth.js

# 누가 이 줄을 마지막으로 변경했나?
git blame src/auth.js

# 커밋 메시지 검색
git log --grep="로그인"

# 특정 날짜 이후 커밋
git log --after="2025-01-01"

# 변경된 파일 이름만
git log --name-only

# 작업 중 원격 최신화 + 리베이스 (협업 시 권장)
git pull --rebase origin main

# 삭제된 파일 복구
git checkout HEAD -- deleted-file.js

# 특정 커밋의 특정 파일만 가져오기
git checkout abc1234 -- src/config.js
마무리 — Git을 잘 쓰는 3가지 원칙
1. 커밋은 작게, 자주 — 하나의 커밋에 하나의 변경
2. 메시지는 명확하게 — 미래의 나와 팀원을 위한 기록
3. push 전에 pull — 충돌은 로컬에서 해결하고 올리기

관련 검색어  ·  gitignore 작성법, git stash 사용법, git reset revert 차이, git alias 설정, git 실수 복구, gitignore.io

채용정보
공지사항
인사이트
MY