Git 명령어 치트시트

자주 쓰는 Git 명령어 검색 레퍼런스 — 커밋·브랜치·병합·리베이스·스태시·되돌리기까지 쉬운 설명과 원클릭 복사. 브라우저에서 처리, 업로드 없음.

65개 중 65개 표시

설정

git init
현재 폴더에 빈 Git 저장소를 만듭니다.
git clone <url>
원격 저장소와 전체 히스토리를 내려받습니다.
git config --global user.name "Your Name"
커밋에 기록될 작성자 이름을 설정합니다.
git config --global user.email "you@example.com"
커밋에 기록될 작성자 이메일을 설정합니다.
git config --list
현재 적용된 모든 설정 값을 나열합니다.

스테이징

git status
스테이징·수정·추적되지 않은 파일 상태를 보여줍니다.
git add <file>
특정 파일을 다음 커밋에 포함하도록 스테이징합니다.
git add .
현재 디렉터리의 모든 변경을 스테이징합니다.
git add -p
변경 조각(hunk)을 대화식으로 골라 스테이징합니다.
git restore --staged <file>
변경은 유지한 채 파일을 스테이징에서 내립니다.
git rm <file>
파일을 삭제하고 그 삭제를 스테이징합니다.

커밋

git commit -m "message"
스테이징된 변경을 메시지와 함께 커밋합니다.
git commit -am "message"
추적 중인 파일을 스테이징하고 한 번에 커밋합니다.
git commit --amend
마지막 커밋을 교체합니다(메시지 수정·파일 추가).
git commit --amend --no-edit
메시지는 그대로 두고 마지막 커밋에 변경을 더합니다.
git commit --allow-empty -m "message"
변경 없이 빈 커밋을 만듭니다(예: CI 실행용).

브랜치

git branch
로컬 브랜치 목록을 봅니다.
git branch <name>
현재 커밋에서 새 브랜치를 만듭니다.
git switch <name>
기존 브랜치로 전환합니다.
git switch -c <name>
새 브랜치를 만들고 바로 전환합니다.
git checkout <branch>
브랜치를 전환하는 고전적 방식(switch 이전).
git branch -d <name>
이미 병합된 브랜치를 삭제합니다.
git branch -m <old> <new>
브랜치 이름을 바꿉니다.

병합 · 리베이스

git merge <branch>
다른 브랜치를 현재 브랜치로 병합합니다.
git merge --no-ff <branch>
항상 병합 커밋을 남기며 병합합니다.
git rebase <branch>
내 커밋들을 다른 브랜치 위로 재적용합니다.
git rebase -i <base>
커밋을 대화식으로 수정·합치기·순서변경합니다.
git rebase --continue
충돌 해결 후 리베이스를 이어서 진행합니다.
git rebase --abort
리베이스를 취소하고 원래 상태로 돌아갑니다.
git cherry-pick <commit>
특정 커밋 하나를 현재 브랜치에 적용합니다.

원격 저장소

git remote -v
원격 저장소와 URL 목록을 봅니다.
git remote add <name> <url>
새 원격 저장소를 추가합니다.
git fetch <remote>
병합하지 않고 원격 변경만 내려받습니다.
git pull
추적 브랜치의 변경을 받아 병합합니다.
git push
로컬 커밋을 원격 브랜치로 올립니다.
git push -u origin <branch>
푸시하며 업스트림 추적 브랜치를 설정합니다.
git push --force-with-lease
남이 먼저 푸시했으면 거부하는 안전한 강제 푸시.

되돌리기

git restore <file>
파일의 커밋되지 않은 변경을 버립니다.
git reset --soft HEAD~1
마지막 커밋을 취소하고 변경은 스테이징으로 둡니다.
git reset --mixed HEAD~1
마지막 커밋을 취소하고 변경을 스테이징에서 내립니다.
git reset --hard HEAD~1
마지막 커밋을 취소하고 변경까지 버립니다.
git reset HEAD~<n>
최근 커밋 N개를 취소하고 변경 내용은 남깁니다.
git fetch origin git reset --hard origin/<branch>
두 단계: 로컬 커밋을 버리고 원격 브랜치와 완전히 같은 상태로 되돌립니다.
git revert <commit>
과거 커밋을 되돌리는 새 커밋을 만듭니다.
git clean -fd
추적되지 않은 파일과 디렉터리를 삭제합니다.
git reflog
HEAD 이동 기록을 보여줍니다 — 잃은 커밋 복구.

스태시

git stash
변경을 임시 저장하고 깨끗한 상태로 되돌립니다.
git stash -u
추적되지 않은 파일까지 포함해 스태시합니다.
git stash list
저장된 스태시 목록을 봅니다.
git stash pop
가장 최근 스태시를 적용하고 목록에서 제거합니다.
git stash apply
스태시를 적용하되 목록에는 남겨 둡니다.
git stash drop
적용하지 않고 가장 최근 스태시를 삭제합니다.

로그 · 차이

git log
커밋 히스토리를 봅니다.
git log --oneline
커밋마다 한 줄로 히스토리를 봅니다.
git log --graph --oneline --all
브랜치와 병합을 그래프로 시각화해 봅니다.
git diff
스테이징되지 않은 변경을 마지막 커밋과 비교합니다.
git diff --staged
다음 커밋에 스테이징된 변경을 봅니다.
git show <commit>
특정 커밋의 정보와 변경 내용을 봅니다.
git blame <file>
파일의 각 줄을 마지막으로 바꾼 사람을 봅니다.

태그

git tag
모든 태그 목록을 봅니다.
git tag <name>
현재 커밋에 경량 태그를 만듭니다.
git tag -a <name> -m "message"
메시지를 담은 주석 태그를 만듭니다.
git push origin <tag>
특정 태그를 원격에 푸시합니다.
git push --tags
로컬의 모든 태그를 원격에 푸시합니다.
git tag -d <name>
로컬 태그를 삭제합니다.

🔒 브라우저에서 실행되며 업로드되지 않습니다.

잊어버린 Git 명령어를 검색 한 번으로

명령의 일부나 하려는 작업을 입력하면 — 예: rebase, stash, undo — 목록이 즉시 걸러집니다. 명령은 작업별로 묶여 있습니다: 설정, 스테이징, 커밋, 브랜치, 병합·리베이스, 원격, 되돌리기, 스태시, 로그, 태그. 각 줄에는 짧은 설명과 원클릭 복사 버튼이 있습니다. 정적 레퍼런스라 입력한 내용은 업로드되지 않습니다.

reset과 revert, merge와 rebase

헷갈리기 쉬운 명령을 나란히 정리했습니다: 커밋을 되돌리는 git reset --soft/--mixed/--hard, 공유 브랜치에서 안전하게 되돌리는 git revert, 브랜치를 합치는 git rebasegit merge. "undo"로 안전한 방법을 비교하거나 "push"로 원격·태그 푸시를 함께 확인하세요.

자주 묻는 질문

git reset과 git revert의 차이는 무엇인가요?

git reset은 브랜치 포인터를 옮겨 커밋이나 변경을 로컬에서 없앨 수 있어 히스토리를 다시 씁니다. git revert는 이전 커밋을 취소하는 새 커밋을 만들어 이미 공유된 브랜치에서도 안전합니다.

git rebase와 git merge는 언제 쓰나요?

깔끔한 선형 히스토리를 원하면 rebase로 내 커밋을 최신 브랜치 위에 재적용합니다(PR 전에 유용). 정확한 히스토리를 보존하려면 merge를 쓰며 특히 공유 브랜치에서 안전합니다.

마지막 커밋을 취소하되 변경은 남기려면?

git reset --soft HEAD~1로 커밋만 없애고 변경은 스테이징에 남기거나, git reset --mixed HEAD~1로 변경을 유지하되 스테이징에서 내립니다.

검색한 내용이 서버로 전송되나요?

아니요. 명령어 목록은 페이지와 함께 실려 오는 정적 데이터이고 검색도 브라우저 안에서만 이뤄지므로, 입력한 것은 기기를 벗어나지 않습니다.