git version-control cheat-sheet workflow dev-reference

Git 핵심 치트 시트: 명령어, 워크플로 및 모범 사례

개발자를 위한 포괄적인 Git 치트 시트. git add, commit, push, branch, merge 및 rebase를 명확한 예제와 함께 마스터하세요.

2026-04-12

Git 핵심 치트 시트: 명령어, 워크플로 및 모범 사례

Git은 세계에서 가장 널리 사용되는 버전 관리 시스템입니다. 1인 개발자든 대규모 팀의 일원이든, Git을 마스터하는 것은 코드 이력을 관리하고 효율적으로 협업하는 데 필수적입니다.

이 치트 시트를 일반적인 Git 명령어와 워크플로를 위한 빠른 참조 가이드로 활용하세요.


1. 기본 워크플로

변경 사항을 만들고 저장소에 저장하는 핵심 사이클입니다.

명령어 설명 예시
git init 로컬에 새로운 Git 저장소 초기화 git init
git clone 원격 저장소 복제 git clone [url]
git add 다음 커밋을 위해 변경 사항 스테이징 git add . (모두 추가)
git commit 스테이징된 변경 사항을 이력에 저장 git commit -m "feat: login"
git status 작업 디렉토리 상태 표시 git status
git push 로컬 커밋을 원격 저장소에 업로드 git push origin main
git pull 원격에서 변경 사항을 가져와 머지(병합) git pull origin main
git fetch 원격에서 변경 사항 다운로드 (머지 안 함) git fetch origin

2. 브랜치(Branching) 및 머지(Merging)

브랜치를 사용하면 서로 다른 기능이나 수정을 독립적으로 작업할 수 있습니다.

  • 브랜치 생성: git branch [name]
  • 브랜치 전환: git checkout [name] (또는 git switch [name])
  • 생성 및 전환: git checkout -b [name]
  • 브랜치 머지: git merge [name] ([name] 브랜치를 현재 브랜치로 머지)
  • 리베이스(Rebase): git rebase [name] (커밋을 [name] 브랜치의 끝으로 재적용)
  • 브랜치 삭제: git branch -d [name]

3. 변경 사항 취소하기

실수를 수정하거나 이전 상태로 되돌리는 방법입니다.

  • 커밋 되돌리기: git revert [commit-hash] (변경 사항을 되돌리는 새로운 커밋 생성)
  • 리셋 (Soft): git reset --soft HEAD~1 (커밋만 취소, 변경 사항은 스테이징 상태로 유지)
  • 리셋 (Hard): git reset --hard HEAD~1 (커밋 취소 및 모든 변경 사항 삭제! 주의 요망)
  • 스태시(Stash): git stash (커밋하지 않은 변경 사항을 임시로 숨김)
  • 스태시 복구: git stash pop (숨겼던 변경 사항을 다시 가져옴)

4. 검사 및 디버깅

이력을 확인하고 버그를 찾는 도구들입니다.

명령어 설명
git log 커밋 이력 표시
git diff 커밋 간 또는 작업 디렉토리의 차이점 표시
git blame [file] 파일의 각 행을 누가 수정했는지 표시
git show [commit] 특정 커밋의 상세 정보 표시
git bisect 이진 탐색을 사용하여 버그를 유발한 커밋 찾기

자주 묻는 질문 (FAQ)

Q: Merge(머지) vs Rebase(리베이스): 무엇을 사용해야 하나요?

A: Merge는 새로운 '머지 커밋'을 생성하며 전체 이력과 시간 순서를 보존합니다. Rebase는 커밋을 대상 브랜치의 끝으로 이동시켜 이력을 재작성하므로, 더 깨끗하고 선형적인 이력을 만듭니다. 원칙: 공개된 브랜치에서는 리베이스하지 마세요. 푸시 전 로컬 작업을 정리할 때만 사용하세요.

Q: 머지 충돌(Conflict)을 어떻게 해결하나요?

A: 충돌이 발생하면 Git이 파일을 표시합니다. 1. 파일을 열어 <<<<<<<, =======, >>>>>>> 표시를 찾으세요. 2. 원하는 코드를 남기도록 편집하세요. 3. git add [file] 실행. 4. git commit 실행.

Q: "detached HEAD"란 무엇인가요?

A: 브랜치가 아닌 특정 커밋이나 태그를 체크아웃했다는 의미입니다. 현재 어떤 브랜치에도 속해 있지 않은 상태입니다. 여기서 새로 커밋을 해도 다른 곳으로 이동하면 커밋이 사라질 수 있습니다. 변경 사항을 저장하려면 git checkout -b new-branch-name을 실행하세요.

Q: .gitignore의 모범 사례는 무엇인가요?

A: 환경 변수(.env), 빌드 결과물(dist/, build/), 의존성 폴더(node_modules/), OS 관련 파일(.DS_Store) 등은 항상 제외해야 합니다. 사용하는 언어나 프레임워크에 맞는 공식 템플릿(GitHub 등에서 제공)을 사용하는 것이 좋습니다.


Tool3M 관련 정보

  • 홈페이지: 생산성을 높여줄 더 많은 개발 도구와 참조 자료를 확인해 보세요.