Git 설정
명령어 | 설명 |
git --version |
Git 버전 확인 |
git config --global user.name '<이름>' |
사용자 이름 설정 |
git config --global user.email '<이메일>' |
사용자 이메일 설정 |
git config --global core.autocrlf input |
개행 문자 설정 |
git config --global init.defaultBranch main |
메인 브랜치 이름을 main으로 설정 |
git config --global --list |
구성 목록 확인 |
git config --global --unset <항목이름> |
특정 구성 항목 삭제 |
Git 기본 작업
• 초기화
명령어 | 설명 |
git init |
Git 저장소 초기화 |
git remote |
원격 저장소 목록 확인 |
git remote -v |
원격 저장소 URL 확인 |
git remote add <원격별칭> <URL> |
원격 저장소 추가 |
git clone <URL> |
원격 저장소 복제 |
rm -rf .git |
버전 관리 초기화 |
• 추적
명령어 | 설명 |
git status |
현재 브랜치 상태 확인 |
git add <파일> |
특정 파일 스테이징 |
git add . |
모든 파일 스테이징 |
git mv <파일A> <파일B> |
스테이징된 파일 이름 A에서 B로 변경 |
git rm -r --cached <파일> |
추적 목록에서 제거 (.gitignore 갱신) |
git clean -fdn |
삭제 가능한 파일 목록 확인 |
git clean -fd |
추적되지 않은 파일 삭제 |
git restore --staged <파일> |
특정 파일 언스테이징 (v2.23) |
git restore --staged . |
모든 파일 언스테이징 (v2.23) |
• 브랜치
명령어 | 설명 |
git branch |
로컬 브랜치 목록 확인 |
git branch <브랜치> |
브랜치 생성 |
git branch -D <브랜치> |
브랜치 삭제 |
git checkout <브랜치> |
브랜치 전환 |
git checkout -b <브랜치> |
브랜치 생성 후 전환 |
git switch <브랜치> |
브랜치 전환 (v2.23) |
• 병합
명령어 | 설명 |
git merge <브랜치> |
현재 브랜치에 특정 브랜치를 병합 |
git merge --abort |
충돌 발생 시 병합 과정 중단 |
• 커밋
명령어 | 설명 |
git commit -m '<메시지>' |
버전 생성 |
git commit -am '<메시지>' |
추적된 파일 스테이징 + 커밋 |
git commit --amend |
직전 커밋 수정 |
• 푸시
명령어 | 설명 |
git push <원격별칭> <브랜치> |
원격 저장소에 브랜치 업로드 |
git push <원격별칭> --all |
모든 브랜치 업로드 |
git push <원격별칭> <브랜치> -f |
강제 업로드 (주의 필요) |
git push <원격별칭> <브랜치> -u |
업로드 후 기본 원격 브랜치로 설정 |
• 풀
명령어 | 설명 |
git pull <원격별칭> <브랜치> |
원격 브랜치 변경 사항 가져와 병합 |
git pull --rebase <원격별칭> <브랜치> |
원격 브랜치 변경 사항을 내 로컬 브랜치 위에 적용 |
• 패치
명령어 | 설명 |
git fetch |
원격 저장소의 변경 사항 가져오기 (병합 없음) |
git fetch <원격별칭> |
특정 원격 저장소의 변경 사항 가져오기 |
git fetch --all |
모든 원격 저장소의 변경 사항 가져오기 |
git fetch --prune |
원격에서 삭제된 브랜치를 로컬에서도 정리 |
변경 내역 확인
• 로그
명령어 | 설명 |
git log |
커밋 이력 조회 |
git log -<숫자> |
최근 n개의 커밋만 조회 (예: git log -2 ) |
git log --all |
모든 브랜치의 커밋 이력 조회 |
git log --oneline |
한 줄 요약 형태로 커밋 이력 조회 |
git log --graph |
브랜치 구조를 그래프로 표시 |
git reflog |
HEAD 이동 기록 확인 |
git show |
최근 커밋 상세 정보 조회 |
git show <해시> |
특정 커밋 내용 확인 (예: git show 1a2b3c4d ) |
git blame <파일> |
각 줄의 마지막 수정자 확인 |
git blame -L <시작>,<종료> <파일> |
특정 줄 범위의 마지막 수정자 확인 |
git branch --show-current |
현재 브랜치 이름 출력 |
• 비교
명령어 | 설명 |
git diff <파일> |
파일의 수정 내용 확인 |
git diff <파일A> <파일B> |
두 파일 비교 |
git diff <브랜치> |
특정 브랜치와 현재 브랜치 비교 |
git diff <브랜치A> <브랜치B> |
두 브랜치 비교 |
git diff <브랜치A>:<파일> <브랜치B>:<파일> |
각 브랜치의 특정 파일 비교 |
git diff <해시> |
현재 버전과 특정 커밋 비교 |
git diff <해시A> <해시B> |
두 커밋 비교 |
기타
• 롤백
명령어 | 설명 |
git checkout HEAD -- <파일> |
특정 파일 변경 사항 취소 (구버전 방식) |
git restore <파일> |
특정 파일 변경 사항 취소 (Git v2.23 이상) |
git restore . |
모든 변경 사항 취소 (Git v2.23 이상) |
git reset --hard HEAD |
현재 작업 중인 모든 파일 변경 사항 취소 |
• 리셋
명령어 | 설명 |
git reset --hard HEAD~<번호> |
지정한 개수만큼 이전 버전으로 되돌리기 |
git reset --hard HEAD~1 |
직전 버전으로 리셋 |
git reset --hard HEAD~ |
직전 버전으로 리셋 (숫자 생략 가능) |
git reset --hard <해시> |
특정 커밋으로 리셋 |
git reset --hard HEAD^ |
마지막 커밋 삭제 |
git reset --hard |
모든 변경 사항 삭제 |
git reset --soft |
커밋만 취소하고 변경 사항은 유지 |
git reset --mixed |
커밋을 취소하고 스테이징을 해제 |
• 되돌리기
명령어 | 설명 |
git revert <해시> |
특정 커밋을 취소하고 새로운 커밋 생성 |
• 임시 저장
명령어 | 설명 |
git stash list |
임시 저장된 작업 목록 확인 |
git stash |
현재 작업을 임시 저장 |
git stash -a |
미추적 파일 포함하여 임시 저장 |
git stash -m '<메시지>' |
메시지와 함께 임시 저장 |
git stash -am '<메시지>' |
미추적 파일 포함하여 메시지와 함께 임시 저장 |
git stash show <번호> |
특정 번호의 임시 저장 내용 확인 |
git stash apply |
가장 최신의 임시 저장을 적용 |
git stash apply <번호> |
특정 번호의 임시 저장을 적용 |
git stash drop |
가장 최신의 임시 저장 삭제 |
git stash drop <번호> |
특정 번호의 임시 저장 삭제 |
git stash pop |
가장 최신의 임시 저장을 적용하고 목록에서 삭제 |
git stash clear |
모든 임시 저장 목록 삭제 |
git stash clean |
추적되지 않은(untracked) 파일과 디렉터리를 삭제 |
• 재배치
명령어 | 설명 |
git rebase <브랜치> |
현재 브랜치를 대상 브랜치로 재배치 |
git rebase --continue |
재배치 계속 진행 |
git rebase --abort |
재배치 과정 중단 |