Code&Data Insights

[Git] Git Pull과 Git Pull --Rebase | Git commit convention 본문

Web Development/Git

[Git] Git Pull과 Git Pull --Rebase | Git commit convention

paka_corn 2024. 5. 22. 16:20

git pull 

: git fetch + git merge 두 명령어의 조합 

 

- git fetch : 원격 저장소의 변경사항을 로컬로 가져옴 

- git merge: 가져온 변경사항을 현재 브랜치에 병합 

 

=> 커밋 히스토리가 꼬여버린 경우..

git reset --hard로 하고 -> git pull 

git reset 하면 잘 안됨 -> git reset --hard로 하고

=> git pull 하기! 

 

** hard는 절대 절대!!! local에서만 실행하세요..!!! 

안된다고 원격 repo에서 했다가 대참사가 일어날 수 있습니다..

(웬만하면 원격 repo에서 작업하지 마세요..ㅎ)

 

git pull --rebase

: git fetch + git rebase 두 명령어의 조합 

- git fetch : 원격 저장소의 변경사항을 로컬로 가져옴 

- git rebase:

(1) 로컬 변경사항을 임시로 저장

(2) 원격 변경사항을 현재 브랜치에 적용

(3) 임시로 저장한 로컬 변경사항을 (2)위에 적용 

-> git rebase는 로컬 변경사항을 원격 변경사항의 최신 커밋위로 재배치하기 때문에 커밋 히스토리가 더 깔끔하게 유지됨! 

 

git pull과 git pull --rebase의 차이점

=> 주로 local에서 작업하고 원격 repo에서 새로운 커밋(다른 동료가 작업한)을 가져와 내 local에 반영할 때 쓰임

 

작업이 길어질 경우... 중간 중간 안하면 git의 지옥에 빠질 것이다.... ㅠㅠㅠㅠ 

git pull --rebase는 주기적으로 하는게 정신건강에 좋음.

(엄청나게 스트레스 받았던 몇번의 경험 뒤로, 나의 경우엔 원격 repo에 가서 push history보면서, 내 local이랑 일치하는지 자주 확인했다)

 

Git Commit Convention 

feat : 새로운 기능 추가 

fix : 버그 수정 

docs : 문서 내용 변경 

style : 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우 등 

refactor : 코드 리팩토링 

test : 테스트 코드 작성 

chore : 빌드 수정, 패키지 매니저 설정, 운영 코드 변경이 없는 경우 등

 

(ex) feat: layout setup 

=> feat: 쓰고 한칸띄어서 쓰기..!

("feat :" : 이런식으로 작성하는게 습관이였어서 고치는 데 애먹었음...ㅎ)

 

이것도 처음엔 감이 안잡히겠지만, 하다보면 다른 분들꺼 보면서 알아서 적게 됩니다..

 

 

reference

https://github.com/gyoogle/tech-interview-for-developer/blob/master/ETC/Git%20Commit%20Message%20Convention.md

Comments