git을 잘 쓰기 위한 브랜치 사용법

  1. main이나 develop등 공용 브랜치에 커밋을 하지 않는다 → feature 브랜치로 따로 따서 작업한다.
    • git checkout -b "feature/NUM"
  2. 공용 브랜치를 자주자주 pull 받아 브랜치를 최신으로 유지한다 (예를들어 develop)
    • 공용 브랜치는 upstream으로 지정한다
    • git remote add upstream [URL]
    • git pull upstream [공용브랜치]
    • git push origin [공용브랜치]
  3. git의 커밋 흐름은 파일 단위가 아니라 커밋 기준으로 생각하면 이해가 빠르다. 커밋은 파일의 수정 단위가 아니라 논리적인 수정 단위다.
    • 커밋 분기를 만들면 골치 아프다. 하나의 브랜치는 하나의 흐름으로 가는게 좋다. (아니면 브랜치를 새로 따든가)

git 브랜치 전략

브랜치의 종류

  • main/master : release에 문제가 없으면 merge되는 브랜치
    • hotfix : master에서 급하게 고쳐야 하는 핫픽스성 브랜치. master로 합쳐진다.
  • release : stable 브랜치로 develop이 merge되는 브랜치. 뒤에 날짜를 붙여서 많이 씀
  • develop : feature들의 모임 feature에서 branch하는 대상.
  • feature/[ISSUE_NUMBER] : 기능 단위의 이슈들 모임

브랜치의 흐름

  • feature → develop → release → main/master

로컬 머지

git checkout -b release/20210624
git merge develop
git push upstream release/20210624
  • 이렇게 하면 release 브랜치에 develop을 가지고 와서 붓는 것이다. (git은 착해서 pull만 한다.)

git이 꼬였을 때

  1. 커밋이 꼬여서 커밋 분기가 생겼을 때 침착하게 git log로 커밋 해시를 복사한다.
  2. git reset HEAD~n으로 돌아간다. - 돌아가는 시점은 분기되기 커밋으로 돌아가야 한다.
  3. cherry-pick으로 원하는 커밋만 가져와서 현재 브랜치에 적용한다. 읽어볼만한 글
  4. 해피해피하다.

Comments