Git 명령어 정리
1️⃣ 기본 명령어
| 명령 | 설명 | 예시 |
|---|
git init | 프로젝트 버전 관리시작 | |
git remote -v | 원격 저장소 URL 확인 | |
git remote add <원격 별칭> <URL> | 원격 저장소 추가 | git remote add origin https://github.com/gaeunchoi/Algorithm.git |
git clone <URL> | 원격 저장소 복제 | git clone https://github.com/gaeunchoi/Algorithm.git |
git status | 현재 브랜치 변경사항 확인 | |
git add <파일명> | 특정 파일 추적 및 스테이징 | git add README.md |
git add . | 모든 파일 추적 및 스테이징 | |
git restore --staged <파일> | 특정 파일 언스테이징(v2.23) | git restore --staged README.md |
git restore --staged . | 모든 파일 언스테이징(v2.23) | |
git commit -m "message" | 버전 생성 | |
2️⃣ log
log 는 생성한 버전 내용이나 내역, 변경 사항, 작업자 등을 확인
| 명령 | 설명 | 예시 |
|---|
git log | 현재 브랜치의 버전 내역을 확인 | |
git log -<숫자> | 숫자만큼만 최신 버전 내역 확인 | git log -2 |
git log --all | 모든 브랜치 내역 확인 | |
git log --oneline | 간략한 버전 내역 확인 | |
git log --graph | 그래프 형태로 버전 내역 확인 | |
git reflog | 로컬의 모든 버전 관리 내역 확인 | |
git show | 현재 브랜치의 최신 버전 확인 | |
git show <브랜치> | 특정 브랜치의 최신 버전 확인 | git show dev |
3️⃣ branch
branch 는 프로젝트에서 여러 작업을 나눠 병렬로 진행할 수 있는, 버전 관리의 각 분기점
| 명령 | 설명 | 예시 |
|---|
git branch | 로컬 브랜치 목록 확인 | |
git branch -r | 원격 브랜치 목록 확인 | |
git branch -a | 로컬 및 원격 브랜치 목록 확인 | |
git branch <브랜치> | 브랜치 생성 | git branch dev |
git branch -D <브랜치> | 브랜치 삭제 | git branch -D dev |
git branch -m <브랜치> | 현재 브랜치 이름 변경 | git branch -m main |
git branch -m <이전브랜치> <새브랜치> | 특정 브랜치 이름 변경 | git branch -m master main |
git branch --show-current | 현재 브랜치 이름 확인 (v2.22) | |
git checkout <브랜치> | 브랜치 전환 | git checkout dev |
git checkout -b <브랜치> | 브랜치 생성 및 전환 | git checkout -b dev |
git checkout <해시> | 특정 버전 체크아웃 | git checkout 1a2b3c4d |
git switch <브랜치> | 브랜치 전환 (v2.23) | git switch dev |
git switch -c <브랜치> | 브랜치 생성 및 전환 (v2.23) | git switch -c dev |
4️⃣ push / pull / fetch
push 는 로컬 저장소의 버전 내역을 원격 저장소로 업로드하는 기능
| 명령 | 설명 | 예시 |
|---|
git push <원격별칭> <브랜치> | 원격 저장소로 밀어내기 | git push origin dev |
git push <원격별칭> --all | 원격 저장소로 모든 브랜치 밀어내기 | git push origin --all |
git push <원격별칭> <브랜치> -f | 원격 저장소로 강제(Force) 밀어내기 | git push origin dev -f |
pull 은 원격 저장소의 버전 내역을 로컬 저장소로 다운로드 하는 기능
| 명령 | 설명 | 예시 |
|---|
git pull <원격별칭> <브랜치> | 원격 저장소에서 브랜치 당겨오기 | git pull origin dev |
git pull --rebase <원격별칭> <브랜치> | 원격 저장소의 브랜치로 로컬 브랜치 덮어쓰기 | git pull --rebase origin dev |
fetch 는 원격 저장소의 최신 내역을 로컬 원격 내역과 동기화하는 기능. 로컬 브랜치에는 영향 x
| 명령 | 설명 | 예시 |
|---|
git fetch | 현재 원격 저장소의 브랜치 목록 가져오기 | |
git fetch <원격별칭> | 특정 원격 저장소의 브랜치 목록 가져오기 | git fetch origin |
git fetch --all | 모든 원격 저장소의 브랜치 목록 가져오기 | |
git fetch --prune | 원격 저장소에서 브랜치 목록 가져와서 로컬의 원격 브랜치 목록 덮어쓰기 | |
5️⃣ diff
diff 는 두 개의 버전이나 파일 등의 차이를 서로 비교하는 기능
| 명령 | 설명 | 예시 |
|---|
git fetch | 현재 원격 저장소의 브랜치 목록 가져오기 | |
git fetch <원격별칭> | 특정 원격 저장소의 브랜치 목록 가져오기 | git fetch origin |
git fetch --all | 모든 원격 저장소의 브랜치 목록 가져오기 | |
git fetch --prune | 원격 저장소에서 브랜치 목록 가져와서 로컬의 원격 브랜치 목록 덮어쓰기 | |
6️⃣ Rollback
롤백(Rollback) 은 현재 작업중인 변경 사항을 모두 취소하고 버리는 것
| 명령 | 설명 | 예시 |
|---|
git checkout HEAD -- <파일> | 특정 파일 롤백 | git checkout HEAD -- ./src/main.js |
git restore <파일> | 특정 파일 롤백 (v2.23) | git restore ./src/main.js |
git restore . | 모든 파일 롤백 (v2.23) | |
git reset --hard HEAD | 모든 파일 롤백 | |
git restore --source <커밋아이디> <파일> | 특정 commit 시점으로 파일 롤백 | |
git restore -staged <파일> | 실수로 git add 했을 때 해당 파일 staging 취소 | |
7️⃣ reset / revert
초기화(Reset) 는 특정 버전으로 이동하고 그 이후 버전 내역을 제거하는 기능
| 명령 | 설명 | 예시 |
|---|
git reset --hard HEAD~<번호> | 번호만큼 이전 버전으로 리셋 | git reset --hard HEAD~2 |
git reset --hard HEAD~1 | 직전 버전으로 리셋 (1 버전 전으로) | |
git reset --hard HEAD~ | 직전 버전으로 리셋 (1 생략) | |
git reset --hard <해시> | 특정 버전으로 리셋 | git reset --hard 1a2b3c4d |
git reset --hard HEAD^ | 마지막 버전을 삭제 | |
git reset --hard | 수정 내용을 버림 | |
git reset --soft | 수정 내용을 스테이징 | |
git reset --mixed | 수정 내용을 스테이징하지 않음 | |
되돌리기(Revert) 는 특정 버전을 취소하고 취소한 새로운 버전을 생성하는 기능
| 명령 | 설명 | 예시 |
|---|
git revert <커밋아이디> | commit 취소하기 | |
git revert HEAD | 방금 생성된 최근 커밋 취소 | |
git revert <해시> | 특정 버전을 취소하고 새로운 버전 생성 | git revert 1a2b3c4d |
8️⃣ stash
임시 저장(Stash) 는 작업 중인 변경사항을 버전으로 생성하지 않고 별도로 저장하는 기능, 최근 commit과의 차이점을 전부 보관해준다
| 명령 | 설명 | 예시 |
|---|
git stash list | 임시 저장된 작업 목록 확인 | |
git stash | 현재 작업을 임시 저장 | |
git stash -a | 미추적 파일 포함, 임시 저장 | |
git stash -m '<메시지>' | 메시지와 함께 현재 작업을 임시 저장 | |
git stash -am '<메시지>' | 미추적 파일 포함, 메시지와 함께 현재 작업을 임시 저장 | |
git stash show <번호> | 특정 번호의 임시 저장 내용 보기 | git stash show 2 |
git stash apply | 가장 최신의 임시 저장 내용을 현재 브랜치에 적용 | |
git stash apply <번호> | 특정 번호의 임시 저장 내용을 현재 브랜치에 적용 | git stash apply 2 |
git stash drop | 가장 최신의 임시 저장 내용 삭제 | |
git stash drop <번호> | 특정 번호의 임시 저장 내용 삭제 | git stash drop 2 |
git stash pop | 가장 최신의 임시 저장을 적용하고 목록에서 삭제 | |
git stash clean | 모든 임시 저장 목록 삭제 | |