[데브코스] Git 야무지게 사용하기
Updated: Categories: TIL데브코스 진유림님 Git 특강
상태 관리
- 추적안됨 (untracked) : 아직 한번도 add 한적 없을때
- 수정없음 (unmodified) : add 후 추적중인데 수정 X
- 수정함 (modified) : 수정되었을때 감지됨
- 스테이지됨 (staged) : add하면 스테이지에 올라감
Checkout
- 최신버전 : switch
- 버전을 가리키는 HEAD가 이동한다고 생각하면 된다.
commit
- file changes 5~7개 정도일 때 커밋하자.
- 동료를 배려!!
커밋 메시지
- 커밋 메시지를 먼저 적고 개발을 해보자 (이건 이슈를 적어놓고 해도 될듯?)
- 변경사항은 웬만하면 다 메시지에 포함시키는게 좋다. (짧다고 좋은게 아님)
- 하지만 적당히
PR Template
- 풀리퀘 규칙이라 생각하면 됨
- 중요도에 따라서 분류
- 리뷰도 되고~ 커밋 박제도 되고 많은 기능을 사용해보자
코드리뷰
- 구성원 상향평준화
- 논리적인 코드 설명
- 코드 컨벤션 숙지
- 미드레벨로 나아가기 위한 필수
Git 심화 기능
ammend
- 커밋 메시지 고치기
- 이미 날린 커밋을 삭제하거나 수정하는 것은 Git의 정신과 위배됨..;;
- 따라서 항상 이런 과거이력을 만질땐 force push가 강요된다..
stash
- GitKraken에서 브랜치 옮길 때 많이 본 거..
- 파일 변경사항을 커밋하지 않고 브랜치 체크아웃 안됨!!!
- 따라서 커밋 없이 체크아웃 하려면 변경사항을 stash에 넣어놓고 해야됨 (세미 커밋정도?)
reset
쓰고 싶지 않은 기능- soft / hard / mixed 가 있다.
- hard reset 하면 그 커밋 위에 쌓인 히스토리 다 날라감 (force push 강제)
revert
- 커밋 히스토리는 냅두고 해당 브랜치를 원하는 커밋의 상태로 바꿔버리기
cherry pick
- 내가 브랜치 따로 파서 작업중인데 마스터 브랜치가 변경됨
- 나는 작업 다 안끝나서 브랜치를 마스터에 머지할 수 없음.. 하지만 마스터 변경사항을 가져와야함
- 근데 마스터 마지막 커밋이 아닌 중간 커밋을 내 브랜치로 가져오고 싶다?
- cherry pick으로 가져올 수 있음 😎