Git 명령어 치트시트
Git에는 약 150개의 하위 명령어가 있고, 그중 몇몇은 위험할 만큼 서로 비슷합니다, reset 대 restore, checkout 대 switch, rm 대 restore --staged. 이 치트시트는 실제로 자주 입력하는 명령어를 상황별로 묶었습니다: 일상 워크플로, 브랜치, 실수 되돌리기, 스태시. 원하는 그룹을 골라 블록을 복사하세요.
치트시트 사용 방법
-
1
주제를 고르세요
일상, 브랜치, 되돌리기, 스태시, 각각이 서로 다른 사고 모드에 대응합니다.
-
2
블록을 훑어보세요
모든 줄은 그대로 동작하는 완전한 명령어입니다. 명시적으로 표시된 경우가 아니면 꺾쇠괄호 자리표시자는 없습니다.
-
3
필요한 것을 복사하세요
터미널에 붙여넣고 브랜치 이름이나 커밋 SHA만 바꿔서 실행하세요.
왜 숙련된 사용자조차 명령어에 혼란스러워할까
Git의 포슬린(porcelain) 명령은 하나씩 덧붙여지며 자라났습니다. checkout은 ‘브랜치 전환’과 ‘파일 복원’ 두 가지에 겹쳐 쓰였고, reset은 ‘작업 폐기’와 ‘브랜치 포인터 이동’ 사이에 걸쳐 있습니다. Git 2.23부터는 더 명확한 동사가 생겼습니다.
| 이전 | 새 명령(더 명확함) |
|---|---|
git checkout branch |
git switch branch |
git checkout -b new |
git switch -c new |
git checkout -- file |
git restore file |
git checkout --staged file |
git restore --staged file |
안전한 되돌리기 단계
- 파일 하나 복원:
git restore path/to/file(스테이징 안 됨) 또는git restore --staged path/to/file(스테이징됐지만 커밋 안 됨). - 마지막 커밋을 취소하되 변경 사항은 유지:
git reset --soft HEAD~1. - 마지막 커밋을 취소하고 변경 사항도 폐기:
git reset --hard HEAD~1(되돌릴 수 없으니 커밋하지 않은 작업이 없는지 먼저 확인하세요). - 공유된 커밋 되돌리기:
git revert <sha>, 기존 커밋을 무효화하는 새 커밋을 만들며, 이미 푸시된 히스토리에서도 안전합니다.
스태시(stash) 사용 예절
- 항상 메시지를 붙여 스태시하세요:
git stash push -m "wip: API 연결 중". - 팝 하기 전에
git stash list로 스태시 목록을 확인하세요, 이름 없는 스태시는 금세 쌓입니다. git stash pop은 적용 후 삭제하고,git stash apply는 적용 후 그대로 남겨 둡니다.
복구
하드 리셋 후 커밋을 잃어버렸나요? 대부분 아직 reflog에 남아 있습니다. git reflog를 실행해 지난 90일간의 모든 HEAD 이동 내역을 확인하고, git reset --hard <sha>로 정상 상태로 되돌리세요.
자주 묻는 질문
Git 2.23(2019년 8월)부터 프로젝트는 여러 역할이 겹쳐 있던 checkout을 둘로 나눴습니다. switch는 브랜치를 바꾸고, restore는 파일을 되돌립니다. 두 명령어 모두 하위 호환을 위해 남아 있지만, 나중에 셸 히스토리를 다시 볼 때 훨씬 읽기 쉽습니다.
reset은 브랜치 포인터를 옮깁니다(경우에 따라 작업 트리까지 함께). revert은 이전 커밋을 취소하는 새 커밋을 만들며 공유 브랜치에서도 안전합니다. checkout / restore는 히스토리를 다시 쓰지 않고 작업 트리의 파일만 바꿉니다.
git revert <sha>로 이를 상쇄하는 커밋을 추가한 뒤 그 커밋을 푸시하세요. 팀이 명시적으로 합의하지 않았다면 공유 브랜치에서 git reset --hard + git push --force는 피하세요.
명령어는 페이지에서 렌더링되는 정적 텍스트입니다. 선택한 주제는 해당 명령어를 표시하기 위해서만 서버로 전송되며, 두 단계 사이를 이동할 때는 페이지 링크에도 실립니다. 저장되거나 기록되지 않습니다.
관련 도구
보색 찾기
어떤 입력에 대해서도 보색을 찾습니다. HSL 반대 색, 분할 보색 쌍, 그리고 접근성 있는 조합 제안을 반환합니다.
Webpack 설정 생성기
순수 JavaScript, React, Vue용 webpack 5 webpack.config.js를 만드세요. TypeScript, Babel, CSS 또는 Sass, 이미지, HtmlWebpackPlugin, 개발 서버, npm install 명령까지 함께 제공합니다.
텍스트 파일 인코딩 변환기
깨진 문자를 고치기 위해 텍스트를 UTF-8, UTF-16, Latin-1, Windows-1252 등 여러 인코딩 사이에서 변환하세요.
XML 포매터
일관된 들여쓰기로 XML 문서를 정렬 출력하고, 정확한 줄 번호로 적격성 오류를 잡아냅니다.
색상 혼합기
두 HEX 색상을 2-20개의 균등한 색상 견본으로 섞습니다. 양 끝 색상을 포함해 각 중간 색상을 대문자 HEX 코드로 확인하세요.
Protocol Buffers 디코더
hex, Base64, Base64URL, 텍스트 또는 파일의 Protobuf 와이어 형식 바이트를 브라우저에서 디코딩하고 정확한 필드 후보를 확인한 뒤 비공개 보고서로 내보냅니다.
이 도구는 다른 언어로도 제공됩니다
- Git-Befehlsübersicht [DE]
- Git-kommandon fusklapp [SV]
- Feuille de triche des commandes Git [FR]
- Git-commando's spiekbriefje [NL]
- Lembar Contekan Perintah Git [ID]
- Folha de Dicas de Comandos Git [PT]
- Ściąga z poleceń Git [PL]
- คู่มือคำสั่ง Git สำหรับการใช้งานอย่างรวดเร็วและสะดวก [TH]
- Bảng tra nhanh lệnh Git [VI]
- Hoja de trucos de comandos de Git [ES]
- Gitコマンドチートシート [JA]
- ورقة مرجعية لأوامر Git [AR]
- Git Command Cheatsheet [EN]
- Promemoria dei comandi Git [IT]
- Git Komutları Kopya Kağıdı [TR]
- Шпаргалка по командам Git [RU]
- Git命令速查表 [ZH]