[GIT] Git 명령어 정리

Git Commands

목차

  1. 시작/설정
  2. 기본 흐름
  3. 푸시/풀
  4. 브랜치/병합
  5. 히스토리/되돌리기/응급처치
  6. 주요 문제 상황
    1. push 했는데 “이미 up to date”인데 내 변경이 없을 때
    2. pull 하다 충돌났을 때
    3. 원격에 올린 커밋을 수정해야 할 때
  7. 참고
  8. 관련 문서

1. 시작/설정

  1. 저장소 만들기
    • git init (현재 폴더를 git 저장소로)
  2. 사용자 설정
    • git config --global user.name "NAME"
    • git config --global user.email "EMAIL"
    • git config --global -l (설정 확인)

2. 기본 흐름: 작업 → 스테이징 → 커밋

  1. 상태 확인
    • git status
  2. 변경 내용 보기
    • git diff (작업트리 vs 스테이징 전)
    • git diff --staged (스테이징 vs 마지막 커밋)
  3. 스테이징
    • git add <file>
    • git add . (전체)
  4. 커밋
    • git commit -m "message"
    • git commit (에디터로 자세히)
  5. 마지막 커밋 수정
    • git commit --amend (메시지/내용 수정)
  6. 파일 추적 제외
    • .gitignore 작성 후 git add .gitignore

3. 원격(Remote) + 푸시/풀

  1. 원격 저장소 복제
    • git clone <url>
  2. 원격 확인/등록
    • git remote -v
    • git remote add origin <url>
  3. 원격 브랜치/최신 반영(안 합침)
    • git fetch (원격만 업데이트)
  4. 가져와서 합치기
    • git pull (= fetch + merge/rebase)
  5. 올리기
    • git push origin <branch>
    • 최초 1회: git push -u origin main
  6. 브랜치 이름 변경(요즘 main)
    • git branch -M main

4. 브랜치/병합

  1. 브랜치 목록/생성
    • git branch
    • git branch <name>
  2. 브랜치 이동/생성+이동
    • git switch <name>
    • git switch -c <name> (생성+이동)
      • (구버전: git checkout)
  3. 병합
    • git merge <branch> (현재 브랜치에 합침)
  4. 리베이스(히스토리 깔끔하게)
    • git rebase <base-branch>
      • 충돌 시: 해결 → git add .git rebase --continue

5. 히스토리/되돌리기/응급처치

  1. 로그 보기(필수)
    • git log --oneline --graph --decorate --all
  2. 되돌리기 3종 세트 (상황별 선택)
    • (A) “커밋을 취소하는 새 커밋”: 공유된 브랜치(원격)에 안전
      • git revert <commit>
    • (B) “커밋 자체를 없애고 과거로”: 혼자 쓰는 브랜치에서만 권장
      • git reset --soft <commit> (커밋만 취소, add 상태 유지)
      • git reset --mixed <commit> (기본값, add 해제)
      • git reset --hard <commit> (작업물까지 삭제: 주의)
    • (C) “잠깐 치우기” (브랜치 옮기기/풀 받기 전에)
      • git stash
      • git stash pop

6. 주요 문제 상황

6.1. push해서 “이미 up to date”인데 내 변경이 없을 때

  • 보통 커밋이 없거나 다른 브랜치에 있음 1. git status 2. git branch --show-current 3. git log --oneline -5

6.2. pull 하다 충돌났을 때

  • 파일 열어서 <<<<<< 구간 해결 → git add . → (merge면) git commit / (rebase면) git rebase --continue

6.3. 원격에 올린 커밋을 수정해야 할 때

  • 혼자 쓰는 브랜치면: git commit --amendgit push --force-with-lease
  • 협업 브랜치면: 웬만하면 revert로 처리

참고

관련 문서

Comments

Newest Posts