Git 치트시트
마지막 업데이트
설정 및 구성
커밋이 올바르게 기록되도록 한 번만 하는 설정.
| 명령어 | 기능 |
|---|---|
git config --global user.name "Ada" | 커밋에 쓸 이름 설정 |
git config --global user.email you@x.com | 커밋에 쓸 이메일 설정 |
git config --list | 현재 모든 설정 표시 |
git config --global init.defaultBranch main | 새 저장소의 첫 브랜치 이름을 main으로 지정 |
git config --global core.editor "code --wait" | 기본 편집기 설정 |
git --version | 설치된 Git 버전 출력 |
생성 및 복제
새 저장소를 시작하거나 기존 저장소를 복사합니다.
| 명령어 | 기능 |
|---|---|
git init | 현재 폴더에 새 저장소 생성 |
git clone <url> | 원격 저장소를 로컬에 복사 |
git clone <url> mydir | 지정한 폴더로 복제 |
git clone --depth 1 <url> | 얕은 복제 (최신 커밋만) |
git clone -b dev <url> | 복제 후 dev 브랜치 체크아웃 |
스테이징 및 커밋
변경 사항을 프로젝트 기록에 남깁니다.
| 명령어 | 기능 |
|---|---|
git add file.txt | 파일 하나 스테이징 |
git add . | 현재 디렉터리의 모든 변경 사항 스테이징 |
git add -p | 선택한 부분을 대화형으로 스테이징 |
git commit -m "message" | 스테이징된 변경 사항 커밋 |
git commit -am "message" | 추적 중인 파일을 스테이징하고 커밋 |
git commit --amend | 마지막 커밋 수정 |
git rm file.txt | 파일을 삭제하고 삭제를 스테이징 |
브랜치
변경 작업을 분리된 공간에서 진행합니다.
| 명령어 | 기능 |
|---|---|
git branch | 로컬 브랜치 목록 |
git branch feature | 새 브랜치 생성 |
git switch feature | 기존 브랜치로 전환 |
git switch -c feature | 생성과 전환을 한 번에 |
git checkout feature | 브랜치 전환의 예전 방식 |
git branch -d feature | 머지된 브랜치 삭제 |
git branch -m newname | 현재 브랜치 이름 변경 |
머지 및 리베이스
두 브랜치의 작업을 합칩니다.
| 명령어 | 기능 |
|---|---|
git merge feature | feature를 현재 브랜치에 머지 |
git merge --no-ff feature | 항상 머지 커밋 생성 |
git rebase main | 내 커밋을 main 위에 다시 적용 |
git rebase -i HEAD~3 | 최근 커밋 3개를 대화형으로 수정 |
git rebase --continue | 충돌 해결 후 재개 |
git rebase --abort | 진행 중인 리베이스 취소 |
git cherry-pick <hash> | 커밋 하나를 이 브랜치에 적용 |
원격 저장소 (push, pull, fetch)
로컬 저장소를 GitHub 같은 원격 저장소와 동기화합니다.
| 명령어 | 기능 |
|---|---|
git remote -v | 설정된 원격 저장소 목록 |
git remote add origin <url> | origin이라는 이름의 원격 저장소 연결 |
git fetch | 머지 없이 원격 변경 사항 내려받기 |
git pull | 원격 브랜치를 가져와 머지 |
git push | 커밋을 원격 저장소에 업로드 |
git push -u origin main | 푸시하면서 업스트림 브랜치 설정 |
git push origin --delete feature | 원격 브랜치 삭제 |
확인하기 (status, log, diff)
무엇이 바뀌었고 무슨 일이 일어나는지 봅니다.
| 명령어 | 기능 |
|---|---|
git status | 스테이징됨, 안 됨, 미추적 파일 표시 |
git log | 커밋 기록 표시 |
git log --oneline --graph | 브랜치 그래프와 함께 압축된 기록 |
git diff | 인덱스 대비 스테이징되지 않은 변경 사항 |
git diff --staged | 마지막 커밋 대비 스테이징된 변경 사항 |
git show <hash> | 커밋 하나의 변경 사항 표시 |
git blame file.txt | 각 줄을 마지막으로 바꾼 사람 표시 |
변경 사항 되돌리기
실수에서 안전하게 복구합니다.
| 명령어 | 기능 |
|---|---|
git restore file.txt | 파일의 스테이징되지 않은 변경 사항 버리기 |
git restore --staged file.txt | 파일 언스테이징 (변경은 유지) |
git reset --soft HEAD~1 | 마지막 커밋 취소, 변경은 스테이징된 채로 유지 |
git reset --hard HEAD~1 | 마지막 커밋 취소하고 변경 사항 버리기 |
git revert <hash> | 다른 커밋을 되돌리는 새 커밋 생성 |
git stash | 변경 사항을 나중을 위해 치워두기 |
git stash pop | 가장 최근 stash 다시 적용 |
자주 쓰는 모든 Git 명령어를 한 페이지에 담았습니다. 이 Git 치트시트는 일상적인 버전 관리를 위한 빠른 참조 자료입니다 - Git 설정, 스테이징과 커밋, 브랜치, 머지와 리베이스, 원격 저장소 동기화, 실수 되돌리기를 다룹니다.
이것들은 Linux, macOS, Windows에서 동일하게 동작하는 표준 Git 명령어입니다. 필요한 것을 복사하거나, 터미널 플레이그라운드에서 바로 실행해 보세요 - 설치할 것 없이 브라우저에서 실제 셸이 동작합니다.
Git 치트시트 자주 묻는 질문
이 Git 치트시트는 무료인가요?
네. 이 Git 치트시트는 완전히 무료이며 회원 가입이 필요 없습니다. 즐겨찾기에 추가해 두고 브랜치, 커밋, 되돌리기 명령어를 찾아봐야 할 때마다 다시 방문하세요.
merge와 rebase의 차이는 무엇인가요?
git merge는 두 브랜치의 기록을 묶는 새 머지 커밋을 만들어 두 브랜치를 합치며, 양쪽의 정확한 기록을 그대로 보존합니다. 반면 git rebase는 내 커밋을 하나씩 다른 브랜치 위에 다시 적용해 머지 커밋 없는 선형 기록을 만듭니다. merge는 안전하고 비파괴적이며, rebase는 더 깔끔한 기록을 만들지만 커밋을 다시 작성하므로, 다른 사람이 이미 받아간 브랜치는 리베이스하지 마세요.Git에서 커밋을 어떻게 되돌리나요?
푸시했는지 여부에 따라 다릅니다. 로컬 커밋이라면
git reset --soft HEAD~1은 마지막 커밋을 취소하되 변경 사항은 스테이징된 채로 유지하고, git reset --hard HEAD~1은 변경 사항까지 완전히 버립니다. 이미 공유된 커밋이라면 git revert <hash>를 사용해 기록을 다시 쓰지 않고 되돌리는 새 커밋을 만드세요.Git 명령어를 온라인에서 연습할 수 있나요?
네. 터미널 플레이그라운드를 열어 브라우저의 실제 셸에서 Git 명령어를 실행해 보세요 - 설치할 것이 없습니다. 체계적으로 배우고 싶다면, Coddy의 무료 인터랙티브 Git 강좌가 첫 커밋부터 브랜치, 머지, 원격 저장소까지 단계별로 안내합니다.
이 치트시트는 초보자에게 적합한가요?
네. 설정과 커밋(일상적인 기본)부터 리베이스와 되돌리기까지 순서대로 정리되어 있어, 첫날부터 상단 섹션을 사용하고 점차 고급 워크플로로 넓혀갈 수 있습니다.