Git 명령어 모음
커밋·브랜치·되돌리기까지 실무 Git 명령어 정리
데이터는 서버로 전송되지 않습니다 — 모든 처리는 브라우저 안에서만 서버 전송 0건
설정·시작
-
git config --global user.name "이름"커밋에 기록될 사용자 이름을 설정합니다
-
git config --global user.email "메일주소"커밋에 기록될 이메일을 설정합니다
-
git config --global init.defaultBranch main새 저장소의 기본 브랜치 이름을 main으로 설정합니다
-
git init현재 디렉터리를 Git 저장소로 초기화합니다
-
git clone https://github.com/user/repo.git원격 저장소를 복제합니다
-
git clone --depth 1 URL최신 커밋만 얕게 복제합니다 (대형 저장소 빠른 클론)
기본 흐름 — 상태·스테이징·커밋·푸시
-
git status변경된 파일과 스테이징 상태를 확인합니다
-
git add .모든 변경 사항을 스테이징합니다
-
git add -p변경 덩어리(hunk) 단위로 골라서 스테이징합니다
-
git commit -m "메시지"스테이징된 변경을 커밋합니다
-
git commit --amend직전 커밋에 변경을 합치거나 메시지를 고칩니다 ※ 푸시 전에만 권장
-
git push커밋을 원격 저장소에 올립니다
-
git push -u origin 브랜치명새 브랜치를 처음 푸시하며 추적 관계를 설정합니다
-
git pull원격 변경을 가져와 병합합니다 (fetch + merge)
-
git fetch --all원격 변경을 가져오기만 하고 병합하지 않습니다
브랜치
-
git branch -a로컬·원격 브랜치 목록을 확인합니다
-
git switch 브랜치명브랜치를 전환합니다 (구버전은 git checkout)
-
git switch -c 새브랜치새 브랜치를 만들고 바로 전환합니다
-
git branch -d 브랜치명병합된 브랜치를 삭제합니다 (-D 는 강제 삭제)
-
git merge 브랜치명지정 브랜치를 현재 브랜치에 병합합니다
-
git rebase main현재 브랜치의 커밋을 main 위로 재배치합니다
-
git rebase -i HEAD~3최근 3개 커밋을 합치거나 수정합니다 (대화형)
-
git cherry-pick 커밋해시특정 커밋 하나만 현재 브랜치로 가져옵니다
이력 확인
-
git log --oneline --graph --all커밋 이력을 그래프로 한 줄씩 봅니다
-
git log -p 파일명특정 파일의 변경 이력을 diff와 함께 봅니다
-
git diff아직 스테이징하지 않은 변경을 봅니다
-
git diff --staged스테이징된 변경을 봅니다
-
git show 커밋해시특정 커밋의 내용을 봅니다
-
git blame 파일명각 줄을 누가 언제 수정했는지 확인합니다
되돌리기
※ reset --hard 와 clean 은 작업 내용을 복구 불가능하게 지울 수 있습니다. 실행 전 git status 로 상태를 확인하세요.
-
git restore 파일명워킹 디렉터리의 수정을 마지막 커밋 상태로 되돌립니다
-
git restore --staged 파일명스테이징만 취소합니다 (변경 내용은 유지)
-
git reset --soft HEAD~1커밋만 취소하고 변경은 스테이징 상태로 남깁니다
-
git reset --hard HEAD~1커밋과 변경 내용을 모두 버립니다 ※ 주의
-
git revert 커밋해시해당 커밋을 되돌리는 새 커밋을 만듭니다 (공유 브랜치에 안전)
-
git stash작업 중인 변경을 임시 저장하고 깨끗한 상태로 만듭니다
-
git stash pop임시 저장한 변경을 다시 적용합니다 (list 로 목록 확인)
-
git clean -fd추적되지 않는 파일·디렉터리를 삭제합니다 ※ 주의 (-n 으로 미리보기)
원격·태그
-
git remote -v등록된 원격 저장소 주소를 확인합니다
-
git remote add origin URL원격 저장소를 추가합니다
-
git tag -a v1.0.0 -m "릴리즈"주석 있는 태그를 만듭니다
-
git push origin --tags태그를 원격에 올립니다
-
git fetch --prune원격에서 삭제된 브랜치를 로컬 목록에서도 정리합니다
Git 명령어, 흐름으로 익히세요
이 페이지는 Git을 설정 → 기본 흐름(add·commit·push) → 브랜치 → 이력 확인 → 되돌리기 → 원격·태그 순서로 정리한 치트시트입니다. 위에서 아래로 읽으면 실제 작업 순서와 같아서 처음 배우는 분도 흐름째 익힐 수 있습니다.
매일 쓰는 핵심은 status, add, commit, push, pull 다섯 개입니다. 여기에 switch -c 로 브랜치를 따고, 실수했을 때 restore·reset·revert 중 상황에 맞는 것을 고를 수 있으면 협업에 필요한 Git의 80%는 갖춘 셈입니다.
※ reset --hard, clean -fd, push --force 는 되돌릴 수 없는 결과를 만들 수 있습니다. 실행 전 git status 와 대상 브랜치를 확인하세요.
자주 묻는 질문
- 커밋을 잘못했어요. 어떤 명령으로 되돌리나요?
- 아직 푸시 전이면 git reset --soft HEAD~1 로 커밋만 풀어 다시 작업하면 됩니다. 이미 푸시한 공유 브랜치라면 이력을 지우는 reset 대신 git revert 로 되돌리는 커밋을 만드는 것이 안전합니다.
- merge와 rebase는 뭐가 다른가요?
- merge는 두 갈래를 합치는 병합 커밋을 만들어 이력이 그대로 남고, rebase는 내 커밋을 대상 브랜치 위로 옮겨 이력이 한 줄로 정리됩니다. 공유된 브랜치를 rebase하면 동료의 이력과 충돌하므로 로컬 작업 브랜치에서만 쓰는 것이 원칙입니다.
- stash한 내용이 사라졌어요.
- git stash list 로 목록을 확인하세요. pop 도중 충돌이 났다면 stash는 지워지지 않고 남아 있습니다. 목록에 없다면 git fsck --unreachable 로 찾을 수 있는 경우도 있습니다.