git config --global user.name "name" | 사용자 이름 설정 |
git config --global user.email "email" | 이메일 설정 |
git config --global core.editor "code --wait" | 기본 에디터 설정 |
git config --global init.defaultBranch main | 기본 브랜치 이름 설정 |
git config --list | 모든 설정 목록 |
git config --global alias.co checkout | 별칭 생성 |
git init | 새 저장소 초기화 |
git clone <url> | 원격 저장소 복제 |
git clone <url> <dir> | 특정 디렉토리로 복제 |
git clone --depth 1 <url> | 얕은 복제 (최신 커밋만) |
git clone --branch <branch> <url> | 특정 브랜치 복제 |
git status | 작업 트리 상태 표시 |
git add <file> | 특정 파일 스테이지 |
git add . | 모든 변경사항 스테이지 |
git add -p | 대화형으로 스테이지 |
git commit -m "message" | 메시지와 함께 커밋 |
git commit -am "message" | 추적 파일 스테이지 후 커밋 |
git commit --amend | 마지막 커밋 수정 |
git commit --amend --no-edit | 메시지 변경 없이 마지막 커밋에 추가 |
git diff | 스테이지되지 않은 변경사항 |
git diff --staged | 스테이지된 변경사항 |
git diff <branch1> <branch2> | 두 브랜치 비교 |
git log | 커밋 히스토리 표시 |
git log --oneline | 간단한 커밋 히스토리 |
git log --graph --oneline | 브랜치 그래프 표시 |
git log -p <file> | 파일 변경 히스토리 |
git show <commit> | 커밋 상세 정보 |
git blame <file> | 각 줄을 누가 변경했는지 표시 |
git branch | 로컬 브랜치 목록 |
git branch -a | 모든 브랜치 목록 |
git branch <name> | 새 브랜치 생성 |
git branch -d <name> | 브랜치 삭제 (안전) |
git branch -D <name> | 브랜치 강제 삭제 |
git branch -m <old> <new> | 브랜치 이름 변경 |
git checkout <branch> | 브랜치로 전환 |
git checkout -b <name> | 브랜치 생성 후 전환 |
git switch <branch> | 브랜치로 전환 (최신) |
git switch -c <name> | 브랜치 생성 후 전환 (최신) |
git merge <branch> | 현재 브랜치에 병합 |
git merge --no-ff <branch> | 커밋과 함께 병합 (fast-forward 없이) |
git merge --squash <branch> | 스쿼시 병합 |
git rebase <branch> | 브랜치 위로 리베이스 |
git rebase -i HEAD~n | 마지막 n개 커밋 대화형 리베이스 |
git rebase --abort | 리베이스 중단 |
git rebase --continue | 충돌 해결 후 리베이스 계속 |
git cherry-pick <commit> | 특정 커밋 적용 |
git remote -v | 원격 저장소 목록 |
git remote add <name> <url> | 원격 저장소 추가 |
git remote remove <name> | 원격 저장소 제거 |
git remote rename <old> <new> | 원격 저장소 이름 변경 |
git remote set-url <name> <url> | 원격 URL 변경 |
git fetch | 원격 변경사항 다운로드 |
git fetch --all | 모든 원격에서 가져오기 |
git pull | 가져오기 및 병합 |
git pull --rebase | 가져오기 및 리베이스 |
git push | 원격에 푸시 |
git push -u origin <branch> | 푸시 및 업스트림 설정 |
git push --force | 강제 푸시 (위험) |
git push --force-with-lease | 안전한 강제 푸시 |
git push origin --delete <branch> | 원격 브랜치 삭제 |
git checkout -- <file> | 파일 변경사항 취소 |
git restore <file> | 파일 변경사항 취소 (최신) |
git restore --staged <file> | 파일 언스테이지 |
git reset HEAD <file> | 파일 언스테이지 (레거시) |
git reset --soft HEAD~1 | 커밋 취소, 변경사항 스테이지 유지 |
git reset --mixed HEAD~1 | 커밋 취소, 변경사항 언스테이지 |
git reset --hard HEAD~1 | 커밋 취소, 변경사항 삭제 |
git revert <commit> | 변경사항을 취소하는 커밋 생성 |
git stash | 변경사항 스태시 |
git stash push -m "message" | 메시지와 함께 스태시 |
git stash list | 스태시 목록 |
git stash pop | 최신 스태시 적용 및 제거 |
git stash apply | 최신 스태시 적용 (유지) |
git stash drop | 최신 스태시 제거 |
git stash clear | 모든 스태시 제거 |
git tag | 태그 목록 |
git tag <name> | 경량 태그 생성 |
git tag -a <name> -m "msg" | 주석 태그 생성 |
git tag -d <name> | 로컬 태그 삭제 |
git push origin <tag> | 원격에 태그 푸시 |
git push origin --tags | 모든 태그 푸시 |
git clean -n | 삭제될 파일 미리보기 |
git clean -fd | 추적되지 않는 파일/폴더 삭제 |
git gc | 가비지 컬렉션 |
git reflog | 참조 로그 표시 |
git bisect start | 버그 이진 탐색 시작 |
git bisect good/bad | 커밋을 good/bad로 표시 |
git bisect reset | bisect 세션 종료 |
git worktree list | 워크트리 목록 |
git worktree add <path> <branch> | 브랜치용 워크트리 생성 |
git worktree add -b <new> <path> | 워크트리에 새 브랜치 생성 |
git worktree remove <path> | 워크트리 제거 |
git worktree prune | 오래된 워크트리 제거 |
git submodule add <url> <path> | 서브모듈 추가 |
git submodule init | 서브모듈 초기화 |
git submodule update | 서브모듈 업데이트 |
git submodule update --init --recursive | 모든 서브모듈 초기화 및 업데이트 |
git clone --recurse-submodules <url> | 서브모듈과 함께 복제 |
git submodule foreach git pull | 모든 서브모듈 풀 |
git submodule status | 서브모듈 상태 표시 |
.git/hooks/pre-commit | 커밋 전 실행 |
.git/hooks/commit-msg | 커밋 메시지 검증 |
.git/hooks/pre-push | 푸시 전 실행 |
.git/hooks/post-merge | 병합 후 실행 |
.git/hooks/pre-rebase | 리베이스 전 실행 |
chmod +x .git/hooks/<hook> | 훅 실행 권한 부여 |
.gitignore로 추적에서 파일 제외git diff --staged로 변경사항 검토git stash 사용