오래된 main에서 브랜치를 만들면 충돌이 커집니다. 새 작업은 기준 브랜치 최신화부터 시작합니다.
git switch main기준 브랜치로 이동git pull --ff-only origin mainmain을 원격 최신 상태로 맞춤git switch -c feature/name작업 목적이 보이는 새 브랜치 생성git status새 브랜치와 깨끗한 작업 상태 확인Git 실무 가이드 · 치트시트
매일 쓰는 명령, 브랜치·원격·복구 루틴, 실수하기 쉬운 위험 명령을 한 장으로 정리했습니다.
작성 기준2026년 7월
작업 전후에 가장 자주 확인하는 명령입니다.
git status현재 수정, staging, branch 상태 확인git diff아직 staging하지 않은 변경 확인git diff --staged커밋 후보로 올린 변경 확인git add <file>이번 커밋에 포함할 파일 선택git add -p한 파일 안에서도 커밋할 변경 덩어리만 골라 staginggit commit -m "type: message"작은 목적 단위로 커밋git show --stat <commit>특정 커밋의 변경 파일과 요약 확인기능 작업과 리뷰 흐름의 기본 명령입니다.
git branch브랜치 목록 확인git switch <branch>브랜치 이동git switch -c feature/name브랜치 생성과 이동을 동시에 실행git merge <branch>현재 브랜치에 다른 브랜치 병합git rebase main공유 전 내 작업 브랜치를 최신 main 위로 재배치git rebase --continue충돌 해결 후 rebase 이어가기git rebase --abortrebase 중단 후 시작 전 상태로 복귀git branch -d <branch>병합 완료된 브랜치 삭제원격 저장소와 로컬 저장소를 맞출 때 사용합니다.
git remote -v연결된 원격 저장소 확인git fetch origin원격 이력만 가져오기git fetch --prune origin원격에서 삭제된 브랜치 추적 정보 정리git log --oneline --decorate --graph --all로컬과 원격 이력 흐름 확인git pull --ff-only origin main빠른 전진 가능한 경우에만 main 최신화git push -u origin feature/name처음 push하면서 추적 브랜치 설정git push이후 같은 브랜치에 변경 업로드문제가 생겼을 때 안전하게 멈추고 되돌리는 명령입니다.
git stash push -m "wip"커밋 전 변경 임시 보관git stash list보관한 작업 목록 확인git stash show -p stash@{0}특정 stash의 실제 변경 내용 확인git stash pop보관한 변경 다시 적용git stash drop stash@{0}필요 없어진 stash 삭제git restore <file>working tree의 특정 파일 변경 되돌리기git restore --staged <file>staging에서만 빼고 파일 수정은 유지git commit --amend마지막 커밋 수정git reset --soft HEAD~1커밋만 취소하고 변경은 유지git revert <commit>공유된 커밋을 취소 커밋으로 되돌림기존 시스템이 SVN 기준으로 운영될 때, 현재 저장소 상태와 Git 연동 가능성을 확인하는 명령입니다.
svn info현재 작업 사본의 SVN URL, revision, repository root 확인svn log -l 5최근 SVN 커밋 이력 확인svn statusSVN 작업 사본의 수정, 추가, 삭제 상태 확인git svn clone --stdlayout <svn-url> <dir>trunk/branches/tags 표준 구조의 SVN 저장소를 Git 작업 저장소로 가져오기git svn fetchSVN 원격의 새 revision을 Git 저장소로 가져오기git svn rebaseSVN 최신 변경을 가져와 현재 Git 커밋 위에 재배치git svn dcommitGit 커밋을 SVN revision으로 반영. 운영 SVN에 쓰기 작업이므로 권한과 정책 확인 후 실행오래된 main에서 브랜치를 만들면 충돌이 커집니다. 새 작업은 기준 브랜치 최신화부터 시작합니다.
git switch main기준 브랜치로 이동git pull --ff-only origin mainmain을 원격 최신 상태로 맞춤git switch -c feature/name작업 목적이 보이는 새 브랜치 생성git status새 브랜치와 깨끗한 작업 상태 확인커밋은 저장 버튼이 아니라 리뷰 단위입니다. 넣을 변경과 뺄 변경을 분리한 뒤 커밋합니다.
git status수정 파일과 staging 상태 확인git diff아직 커밋 후보가 아닌 변경 검토git add -p관련 있는 변경 덩어리만 골라 staginggit diff --staged이번 커밋에 들어갈 내용 최종 확인git commit -m "docs: update git command guide"목적이 드러나는 메시지로 커밋충돌 해결의 첫 단계는 현재 Git이 merge 중인지 rebase 중인지 확인하는 것입니다.
git status진행 중인 작업과 충돌 파일 확인git diff --name-only --diff-filter=U충돌 상태인 파일만 목록화git add <resolved-file>충돌 표시를 정리한 파일을 해결 완료로 표시git rebase --continuepull --rebase 또는 rebase 중이었다면 이어가기git merge --abortmerge 중 확신이 없을 때 시작 전으로 중단일반 merge 중이면 해결 후 commit, rebase 중이면 rebase --continue입니다. 항상 git status 안내 문구를 기준으로 판단하세요.
아직 push하지 않은 마지막 커밋은 amend로 정리할 수 있습니다. 이미 공유했다면 팀 합의가 먼저입니다.
git add <missing-file>빠뜨린 파일을 staginggit commit --amend마지막 커밋에 변경 또는 메시지 반영git show --stat HEAD수정된 마지막 커밋 요약 확인git push --force-with-lease개인 브랜치에서만, 공유 후에는 합의하고 실행main이나 팀 브랜치에 들어간 변경은 히스토리를 지우지 않고 취소 커밋을 남기는 방식이 안전합니다.
git log --oneline되돌릴 커밋 해시 확인git revert <commit>해당 변경을 취소하는 새 커밋 생성git show --stat HEADrevert 커밋 내용 확인git push취소 커밋을 원격에 공유PR이 끝난 브랜치가 계속 보이면 원격 추적 정보와 로컬 브랜치를 나눠 정리합니다.
git fetch --prune origin원격에서 사라진 브랜치 추적 정보 제거git branch -vv로컬 브랜치와 upstream 상태 확인git branch -d feature/name병합 완료된 로컬 브랜치 삭제git branch -D feature/name미병합 브랜치 강제 삭제. 필요 변경 여부 확인 후 실행기존 운영 기준이 SVN이라면 Git 전환보다 먼저 이력, 배포, 권한, 감사 기준을 확인합니다.
svn infoSVN 저장소 URL과 현재 revision 확인svn log -l 10최근 변경 빈도와 커밋 작성자 확인svn status작업 사본에 미반영 변경이 있는지 확인git svn clone --stdlayout <svn-url> <dir>표준 SVN 구조를 Git 작업 저장소로 변환해 검토git svn fetchSVN의 새 revision을 Git 쪽으로 동기화SVN을 Git으로 옮길 때는 전체 이력을 보존할지, 최근 릴리스 기준으로만 가져올지, 운영 태그와 배포 스크립트를 어떻게 검증할지 먼저 정해야 합니다.
git reset --hard추적 중인 파일의 작업 변경까지 버립니다. 실행 전 diff와 백업 여부를 확인하세요.
git clean -fd추적하지 않는 파일과 폴더를 삭제합니다. 생성 산출물인지, 필요한 원본인지 반드시 확인하세요.
git push --force원격 히스토리를 덮어쓸 수 있습니다. 팀 브랜치에서는 force-with-lease도 합의 없이 쓰지 않습니다.
git svn dcommitGit 커밋을 실제 SVN revision으로 반영합니다. 레거시 운영 저장소에 쓰기 작업을 하므로 브랜치, 권한, 배포 정책을 확인한 뒤 실행하세요.
되돌릴 수 없는 명령은 실행 전에 `git status`와 `git diff`를 먼저 확인하세요. 팀 브랜치에 영향을 주는 명령은 합의 없이 실행하지 않는 것이 원칙입니다.
docs: add git recovery checklistfix: prevent stale session redirect loopfeat: add aide mock exam route