목차

    딸깍 지름길.zip

    Git 명령어 완벽 가이드 | 초보자부터 협업까지 한 번에 끝내기

    zippy 2026. 4. 17. 12:38

    개발을 시작하면 누구나 처음 마주치는 것이 바로 Git입니다. "커밋이 뭐야?", "브랜치는 왜 쓰는 거야?" 라는 질문에서 시작해서, 팀 협업 중 머지 충돌로 멘붕을 겪기까지, Git은 모든 개발자의 필수 도구입니다. 이 글에서는 Git의 초기 설정부터 실무 협업까지, 꼭 알아야 할 핵심 명령어를 단계별로 완벽하게 정리합니다.

    ✅ Git이란? 왜 써야 할까?

    Git은 분산형 버전 관리 시스템(DVCS, Distributed Version Control System)으로, 코드의 변경 이력을 기록하고 관리할 수 있게 해주는 도구입니다. Git을 사용하면 다음과 같은 이점이 있습니다.

    • 변경 이력 추적: 누가, 언제, 무엇을 바꿨는지 기록됩니다
    • 협업 용이성: 여러 명이 동시에 같은 프로젝트에서 작업할 수 있습니다
    • 실수 복구: 이전 상태로 언제든지 되돌릴 수 있습니다
    • 브랜치 전략: 기능별로 독립적인 작업 공간을 만들 수 있습니다

    ⚙️ 1단계: Git 초기 설정 (git config)

    Git을 처음 설치했다면 가장 먼저 사용자 정보를 설정해야 합니다. 커밋 기록에 작성자 정보가 함께 남기 때문에 반드시 설정해야 하는 과정입니다.

    # 사용자 이름 설정
    git config --global user.name "홍길동"
    
    # 이메일 설정
    git config --global user.email "honggildong@example.com"
    
    # 기본 브랜치명 설정 (main 권장)
    git config --global init.defaultBranch main
    
    # 설정 확인
    git config --list

    💡 Tip: --global 옵션은 현재 사용자의 모든 저장소에 적용됩니다. 특정 프로젝트에만 적용하려면 해당 디렉토리에서 --local 옵션을 사용하세요.

    📁 2단계: 저장소 생성과 클론 (git init / git clone)

    프로젝트를 시작하는 방법은 두 가지입니다. 새 저장소를 직접 만들거나, 기존 원격 저장소를 복제하는 것입니다.

    # 새 로컬 저장소 초기화
    git init
    
    # 원격 저장소 복제 (GitHub 등)
    git clone https://github.com/username/repository.git
    
    # 특정 폴더명으로 클론
    git clone https://github.com/username/repository.git my-folder

    git init을 실행하면 현재 디렉토리에 .git 폴더가 생성되며, 이 폴더가 Git 저장소의 핵심 데이터를 모두 담고 있습니다.

    📸 3단계: 스테이징과 커밋 (git add / git commit)

    Git의 작업 흐름은 크게 세 영역으로 나뉩니다.
    작업 디렉토리(Working Directory), 스테이징 영역(Staging Area), 로컬 저장소(Local Repository)입니다.

    # 특정 파일을 스테이징 영역에 추가
    git add 파일명.txt
    
    # 현재 디렉토리의 모든 변경 파일 추가
    git add .
    
    # 커밋 (변경 이력 저장)
    git commit -m "feat: 로그인 기능 구현"
    
    # add와 commit을 한 번에 (새 파일 제외)
    git commit -am "fix: 버그 수정"

    좋은 커밋 메시지 작성 규칙 (Conventional Commits)

    • feat: 새로운 기능 추가
    • fix: 버그 수정
    • docs: 문서 변경
    • style: 코드 포맷 변경 (기능 변경 없음)
    • refactor: 코드 리팩토링
    • test: 테스트 추가/수정
    • chore: 빌드 설정, 패키지 변경 등

    🔍 4단계: 상태 확인과 로그 조회 (git status / git log)

    현재 저장소 상태를 파악하고 커밋 이력을 확인하는 명령어입니다. 작업 중에 가장 자주 사용하는 명령어 중 하나입니다.

    # 현재 작업 상태 확인
    git status
    
    # 커밋 이력 조회
    git log
    
    # 한 줄 요약으로 보기
    git log --oneline
    
    # 브랜치 그래프와 함께 보기
    git log --oneline --graph --all
    
    # 특정 파일의 변경 내용 비교
    git diff 파일명.txt
    
    # 스테이징된 변경 내용 비교
    git diff --staged

    🌿 5단계: 브랜치 전략 (git branch / git checkout / git switch)

    브랜치(Branch)는 Git의 핵심 기능으로, 독립적인 작업 공간을 생성해 메인 코드를 안전하게 보호하면서 새로운 기능을 개발할 수 있게 해줍니다.

    # 브랜치 목록 확인
    git branch
    
    # 새 브랜치 생성
    git branch feature/login
    
    # 브랜치 이동 (구버전 방식)
    git checkout feature/login
    
    # 브랜치 이동 (신버전 권장)
    git switch feature/login
    
    # 브랜치 생성 + 이동 동시에
    git switch -c feature/login
    
    # 브랜치 삭제
    git branch -d feature/login

    💡 실무에서 많이 쓰는 브랜치 전략 (Git Flow)

    • main: 항상 배포 가능한 안정 버전
    • develop: 개발 통합 브랜치
    • feature/기능명: 기능 단위 개발 브랜치
    • hotfix/이슈명: 긴급 버그 수정 브랜치

    🔀 6단계: 병합과 충돌 해결 (git merge / git rebase)

    작업이 완료된 브랜치를 메인 브랜치에 합치는 과정입니다. 충돌(Conflict)이 발생할 수 있으니 차분하게 해결하는 방법을 익혀두는 것이 중요합니다.

    # main 브랜치로 이동 후 병합
    git switch main
    git merge feature/login
    
    # 병합 커밋 없이 직선 이력으로 병합
    git merge --squash feature/login
    
    # 리베이스 (커밋 이력을 깔끔하게 정리)
    git rebase main

    충돌 발생 시 해결 절차

    1. 충돌 파일 확인: git status로 충돌 파일 목록 확인
    2. 파일 편집: 충돌 마커(<<<<<<<, =======, >>>>>>>)가 있는 부분을 직접 수정
    3. 스테이징: git add 파일명으로 해결된 파일 추가
    4. 커밋: git commit으로 병합 완료

    ☁️ 7단계: 원격 저장소 연동 (git remote / git push / git pull)

    로컬 저장소와 GitHub, GitLab 등의 원격 저장소를 연결하고 코드를 동기화하는 핵심 명령어입니다.

    # 원격 저장소 연결
    git remote add origin https://github.com/username/repo.git
    
    # 연결된 원격 저장소 확인
    git remote -v
    
    # 로컬 커밋을 원격에 업로드
    git push origin main
    
    # 최초 업로드 시 upstream 설정 (이후엔 git push만 해도 됨)
    git push -u origin main
    
    # 원격 변경사항 가져오기 + 병합
    git pull origin main
    
    # 원격 변경사항만 가져오기 (병합 안 함)
    git fetch origin

    💡 pull vs fetch 차이점: git pull은 원격 변경사항을 가져와 자동으로 현재 브랜치에 병합합니다. git fetch는 변경사항을 가져오기만 하고 병합은 수동으로 해야 합니다. 팀 협업에서는 충돌을 줄이기 위해 fetch 후 확인하고 병합하는 방식을 권장합니다.

    ⏪ 8단계: 되돌리기 명령어 (git restore / git reset / git revert)

    실수했을 때 당황하지 않고 이전 상태로 되돌리는 방법입니다. 상황에 따라 적절한 명령어를 선택해야 합니다.

    # 작업 디렉토리의 변경사항 취소 (스테이징 전)
    git restore 파일명.txt
    
    # 스테이징 취소 (작업 내용은 유지)
    git restore --staged 파일명.txt
    
    # 최근 N개 커밋을 취소 (이력 삭제, 주의!)
    git reset --hard HEAD~1   # 변경사항도 삭제
    git reset --soft HEAD~1   # 변경사항은 스테이징 유지
    
    # 특정 커밋을 되돌리는 새 커밋 생성 (안전한 방법, 협업 시 권장)
    git revert 커밋해시

    ⚠️ 주의: git reset --hard는 커밋 이력과 작업 내용 모두를 삭제합니다. 원격 저장소에 이미 push된 커밋을 reset하면 팀원과 충돌이 발생할 수 있으니, 협업 중에는 git revert를 사용하는 것이 안전합니다.

    📦 9단계: 임시 저장 (git stash)

    작업 중 갑자기 다른 브랜치로 이동해야 할 때, 커밋하기 애매한 변경사항을 임시로 보관하는 명령어입니다.

    # 현재 변경사항 임시 저장
    git stash
    
    # stash 목록 확인
    git stash list
    
    # 가장 최근 stash 복원 + 목록에서 제거
    git stash pop
    
    # 특정 stash 복원
    git stash apply stash@{0}
    
    # stash 삭제
    git stash drop stash@{0}

    🏷️ 10단계: 태그 관리 (git tag)

    릴리즈 버전이나 중요한 시점을 표시할 때 사용하는 태그 명령어입니다. GitHub에서 릴리즈 노트와 함께 자동으로 표시됩니다.

    # 태그 목록 확인
    git tag
    
    # 간단한 태그 생성
    git tag v1.0.0
    
    # 주석 태그 생성 (릴리즈에 권장)
    git tag -a v1.0.0 -m "첫 번째 정식 릴리즈"
    
    # 원격 저장소에 태그 업로드
    git push origin v1.0.0
    
    # 모든 태그 한 번에 업로드
    git push origin --tags

    🤝 실무 협업 시나리오: Pull Request 흐름

    실제 팀 프로젝트에서 Git을 활용하는 표준적인 협업 흐름입니다.

    1. 최신 코드 동기화: git pull origin main
    2. 기능 브랜치 생성: git switch -c feature/새기능
    3. 작업 후 커밋: git add . → git commit -m "feat: 새 기능 구현"
    4. 원격에 푸시: git push origin feature/새기능
    5. PR 생성: GitHub에서 Pull Request 작성 및 코드 리뷰 요청
    6. 리뷰 반영: 피드백 수정 후 추가 커밋 및 푸시
    7. 병합: 승인 후 main 브랜치에 Merge
    8. 브랜치 정리: git branch -d feature/새기능

    📋 자주 쓰는 Git 명령어 치트시트

    명령어 설명
    git init 저장소 초기화
    git clone [URL] 원격 저장소 복제
    git status 현재 상태 확인
    git add . 전체 변경사항 스테이징
    git commit -m "메시지" 커밋 생성
    git push origin main 원격에 업로드
    git pull origin main 원격 변경사항 가져오기 + 병합
    git branch 브랜치 목록 확인
    git switch -c [브랜치명] 브랜치 생성 + 이동
    git merge [브랜치명] 브랜치 병합
    git log --oneline 커밋 이력 한 줄 보기
    git stash 작업 임시 저장
    git revert [해시] 커밋 안전하게 되돌리기
    git tag -a v1.0.0 버전 태그 생성

    🎯 마무리: Git 학습 로드맵

    Git은 처음에는 낯설지만, 반복해서 쓰다 보면 자연스럽게 손에 익습니다. 아래 순서로 학습하면 효율적입니다.

    1. 기초 다지기: init, add, commit, status, log
    2. 브랜치 익히기: branch, switch, merge
    3. 원격 연동 연습: remote, push, pull, fetch
    4. 협업 시나리오 실습: PR 기반 워크플로우
    5. 고급 기능 탐구: rebase, stash, cherry-pick, bisect

    이 가이드가 Git을 처음 배우는 분들에게 명확한 길잡이가 되길 바랍니다.
    막히는 부분이 생기면 git --help 명령어나 공식 문서(git-scm.com)를 참고하세요.
    꾸준히 쓰는 것이 가장 빠른 학습 방법입니다! 🚀