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
'기타 > Git' 카테고리의 다른 글
[Git] intellij, eclipse jsp 프로젝트 Git 협업하기 (0) | 2024.04.11 |
---|---|
[Git] git협업 하기 - git flow (0) | 2024.04.09 |
[Git] 인텔리제이에서 git clone후 프로젝트 인식이 안되는 문제 (.idea 파일 gitignore) (1) | 2024.01.10 |
[Git] fork, clone 그리고 branch 만들어서 Pull Request 보내기 (1) | 2023.11.01 |
댓글