상태 확인

git status          # 작업 디렉토리 상태
git diff            # 변경 사항 보기
git diff staged     # 스테이징된 변경 사항
git log             # 커밋 히스토리
git log --oneline   # 한 줄씩 히스토리

브랜치 관리

git branch          # 브랜치 목록
git branch new      # 새 브랜치 생성
git checkout dev    # 브랜치 전환
git switch dev      # 브랜치 전환 (최신 방식)
git merge feature   # 브랜치 병합

되돌리기 (중요!)

restore vs reset vs revert

git restore file.txt        # 작업 디렉토리 변경 되돌리기
git restore --staged file   # 스테이징 취소
 
git reset --soft HEAD~1     # 커밋만 취소 (변경 유지)
git reset --mixed HEAD~1    # 커밋+스테이징 취소
git reset --hard HEAD~1     # 커밋+스테이징+변경 취소
 
git revert HEAD     # 새 커밋으로 되돌리기

Stash (임시 저장)

git stash                  # 현재 변경 임시 저장
git stash pop              # 마지막 stash 적용 후 삭제
git stash list             # stash 목록
git stash drop             # 마지막 stash 삭제

Submodule

git clone --recursive          # 서브모듈 포함 클론
git submodule update --init --recursive  # 서브모듈 초기화/업데이트

자주 쓰는 패턴

마지막 커밋 메시지 수정

git commit --amend

커밋 합치기

git rebase -i HEAD~3

원격 동기화

git fetch origin          # 원격 정보 가져오기
git pull origin main      # 가져오기+병합
git push origin feature   # 원격에 푸시

관련 페이지