[데브코스] Git 야무지게 사용하기

Updated: Categories:

데브코스 진유림님 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

  1. 내가 브랜치 따로 파서 작업중인데 마스터 브랜치가 변경됨
  2. 나는 작업 다 안끝나서 브랜치를 마스터에 머지할 수 없음.. 하지만 마스터 변경사항을 가져와야함
  3. 근데 마스터 마지막 커밋이 아닌 중간 커밋을 내 브랜치로 가져오고 싶다?
  4. cherry pick으로 가져올 수 있음 😎