본문 바로가기
기타/Git

[Git] Git 정리

by 방배킹 2023. 8. 24.

commit message

Type 키워드 사용 시점
feat 새로운 기능 추가
fix 버그 수정
docs 문서 수정
style 코드 스타일 변경 (코드 포매팅, 세미콜론 누락 등)
기능 수정이 없는 경우
design 사용자 UI 디자인 변경 (CSS 등)
test 테스트 코드, 리팩토링 테스트 코드 추가
refactor 코드 리팩토링
build 빌드 파일 수정
ci CI 설정 파일 수정
perf 성능 개선
chore 빌드 업무 수정, 패키지 매니저 수정 (gitignore 수정 등)
rename 파일 혹은 폴더명을 수정만 한 경우
remove 파일을 삭제만 한 경우

 

Git 시작하기

git init

git add 파일명

git commit -m "커밋 메시지"

 

git status 를 통해서 현재 상태 확인가능

 

git log --online --all 을 통해 확인할 수있음

 

branch 만들기

git branch newbutton

git switch newbutton

 

branch를 통해 새로운 브랜치를 만들고 switch를 통해 해당 브랜치로 이동할 수 있다,

main 브랜치가 있고 우리는 newbutton 브랜치를 만든상황

 

merge 합치기

git switch main 을 통해서 main 브랜치로 이동을 한다.

git merge newbutton 을 통해 합칠수있다.

 

이때 충돌이 발생할 수있다. (main 브랜치와 newbutton 브랜치에서 같은 파일이 수정 되었을경우)

 

 

브랜치 삭제하기

merge 완료한 브랜치 삭제  :  git branch -d 브랜치명

merge를 안한 브랜치 삭제  :  git branch -D 브랜치명

 

rebase 사용하기

rebase를 사용하면 브랜치의 시작점을 변경할 수있다.

브랜치의 시작점을 이동하고  merge를 하면 fast-forward merge가 된다.

 

브랜치가 너무 많을 경우 fast-forward merge가 아니라 3-way merge를 하면 복잡해지기 때문에 사용한다. 

단, conflict이 생길수 있다.

 

merge는 main 브랜치로 이동했지만, rebase는 해당 브랜치로 이동을 한뒤

git rebase main을 통해 rebase를 할수 있다.

 

squash and merge 사용하기

git merge --squash 새브랜치

revert, reset

git revert 파일아이디  :  해당 파일아이디 commit 내용이 반영되지 않은 내용을 새로 만들어서 commit 해준다.

git revert HEAD  :  가장 최근 커밋 취소

 

git reset --hard 커밋아아디   :   해당 커밋아이디로 모든걸 되돌린다. (입력한 커밋아아디가 head가 된다.) - 협업할때는 사용 X

--hard 대신 --soft를 사용하면 변경사항들을 스태이징 해놓음, mixed 옵션도 존재함

 

clone, pull, push 협업하기

git clone 저장소주소  :  해당 명령어를 통해 협업할 코드를 가져온다.

git push 저장소주소 브랜치명

그리고 push를 통해 올리면된다. 이때 원격저장소에 다른사람이 이미 push를 했으면 나는 push를 하지 못한다.

 

git pull 원격저장소주소 브랜치명   ->  을 통해 현재 변경사항이 있는 원격저장소의 코드를 로컬에 저장한뒤, git push가 가능하다.

pull은 사실상 fetch + merge이다.

fetch : 원격저장소의 신규 commit을 가저온다.

merge : 해당 코드를 내 로컬에 merge

 

따라서 conflict가 발생할 수도 있다.

 

 

VS Code Git 연동

 

레포지토리 초기화를 누르고 로컬 저장소에 commit을 해준다. 

$ git remote add orgin main [ 깃 저장소 주소 ]
$ git pull origin main

 

$ git add 파일명

$ git commit -m "커밋 메시지"

$ git push

댓글