기본 개념
자주 쓰는 Git Command
init | Git을 사용한 적 없는 프로젝트 폴더에서 Git을 사용하기 위한 Initialize |
---|---|
clone | GIt 원격 저장소에 있는 Git 프로젝트를 로컬로 다운로드 |
remote | Git으로 관리되는 로컬 프로젝트에 연결된 원격 저장소 관리 |
add | 현재까지 저장된 변경사항을 Staging 영역으로 이동 |
---|---|
commit | Staging 영역에 위치한 변경사항 리스트를 Commit으로 묶어 저장 |
push | 로컬의 Commit 내용을 원격 저장소에 업로드 |
pull | 원격 저장소의 Commit 내용을 로컬로 다운로드 |
reset | 특정 Commit을 취소 (Commit 자체의 기록을 삭제) |
revert | 특정 Commit을 취소 (되돌리는 내용이 포함된 새로운 Commit 추가) |
branch | 새 Branch 추가 / Branch 목록 확인 |
---|---|
checkout | Branch 간의 이동 |
merge | 여러 Branch 합치기 |
log | 전체 Commit 로그 확인 |
---|
Git Repository 관련 Command
git init
cd "프로젝트 디렉토리"
git init
git remote
git remote add "원격지 이름" "원격지 주소" -> 원격지 등록
git remote remove "원격지 이름" -> 로컬에 등록된 원격지 삭제
git remote -v -> 로컬에 등록된 원격지 목록 확인
ex)
git remote add origin [email protected]:yymin1022/Blog_LR_Front
git remote remove origin
git clone
git clone "원격지 주소"
ex)
git clone <https://github.com/yymin1022/Blog_LR_Front>
git clone [email protected]:yymin1022/Blog_LR_Front
Git Commit 관련 Command
git add
git add "Stage에 추가할 파일"
ex)
git add . -> 현재 디렉토리 하위의 모든 파일을 추가
git add -A -> 현재 프로젝트 내의 모든 파일을 추가
git add hello.txt -> 특정 파일을 추가
Stage에 파일을 추가하는 Command
Stage : Commit을 하기 위한 파일 수정사항들의 목록
git add . 와 git add -A 의 차이
위와 같은 형태로 프로젝트 디렉토리가 구성되어 있을 때, app 디렉토리 내에서 git add .을 실행하면, app 폴더 하위의 모든 변경사항이 Stage로 이동함. 다른 폴더(.idea / gradle 등)의 파일은 이동되지 않음.
반면, 동일하게 app 디렉토리 내에서 git add -A를 실행하면, app 디렉토리 뿐 아니라 프로젝트 내의 모든 디렉토리 내 변경사항이 Stage로 이동됨
<aside> 💡 git add -A . 같은 두 옵션 다 사용하는 이상한 짓거리는 좀 하지마세요. 하려는 사람이 있길래 써두는 한마디…
</aside>
git commit
git commit -m "커밋 내용 메시지"
git commit --amend
ex)
git commit -m "Update App.js : Add Solving Page Route"
git commit -m "Add main.py"
git push
git push "원격지 이름" "브랜치 이름"
ex)
git push origin master
git push origin +master
-> 브랜치 명에 +를 붙이면, 원격지에 뭐가 있든, 현재 로컬의 것으로
강제로 덮어씌워지는 무시무시한 대참사가 일어나게 됨
git pull
git pull "원격지 이름" "브랜치 이름"
ex)
git pull origin master
git reset
git reset "Reset 모드" "Commit Hash"
ex)
git reset --hard 796f31fc
Reset 모드 | 설명 |
---|---|
hard | 특정 Commit과 파일 자체의 변경사항 모두 완전히 사라짐 |
mixed | 특정 Commit은 삭제되나, 파일 자체의 변경사항은 Stage에 존재함 |
git add 까지만 실행한 상태로 돌아감 | |
soft | 특정 Commit이 삭제되고, Stage 에서도 제거되나, |
파일 자체에는 변경사항이 남음 | |
git add 를 실행하기 직전의 상태로 돌아감 |
<aside> 💡 참고 https://antilog.tistory.com/29 https://antilog.tistory.com/32 https://antilog.tistory.com/33 https://antilog.tistory.com/34
</aside>
git revert
git revert "Commit Hash"
ex)
git revert 796f31fc
Git Branch 관련 Command
git branch
git branch "Branch 이름" -> 현재 커밋을 기준으로 분기된 새로운 Branch 생성
git branch "옵션"
ex)
git branch development
git branch -d development
옵션 | 설명 | 예시 |
---|---|---|
-l | 로컬의 Branch 목록 출력 | git branch -l |
-v | 로컬의 Branch 목록을 각 Branch의 마지막 Commit 내용과 함께 출력 | git branch -v |
-r | 원격지의 Branch 목록 출력 | git branch -r |
-a | 로컬과 원격지에 있는 모든 Branch 목록을 한번에 출력 | git branch -a |
-m | Branch의 이름을 변경하되, 같은 이름이 이미 존재하면 오류가 남 | git branch -m “원래이름” “새이름” |
-M | Branch의 이름을 변경하되, 같은 이름이 이미 존재하더라도 덮어씌움 | git branch -M “원래이름” “새이름” |
-d | 지정한 Branch 삭제 | git branch -d “Branch 이름” |
git checkout
git merge