▸ git-github-101
자료

한 커밋에는 한 가지 의도

좋은 커밋은 작고 되돌리기 쉽습니다. 기준은 간단합니다. 커밋 메시지에 "그리고"가 들어가면 나누는 편이 좋습니다.

나쁜 예:
fix: 로그인 버그 수정 그리고 버튼 색 변경 그리고 오타 수정

좋은 예:
fix: 로그인 실패 시 무한 로딩 수정
style: 로그인 버튼 색상을 브랜드 컬러로 변경
docs: 로그인 안내 문구 오타 수정

왜 작게 나눠야 할까요?

작은 커밋은 리뷰하기 쉽습니다. 문제가 생겼을 때 어느 변경이 원인인지 찾기도 쉽고, 필요한 커밋만 골라 되돌리거나 다른 브랜치로 옮기기도 쉽습니다.

반대로 한 커밋에 여러 의도가 섞이면 되돌리기가 어려워집니다. 로그인 버그 수정만 되돌리고 싶은데 버튼 색과 문서 수정까지 같이 묶여 있기 때문입니다.

스테이징 영역이 존재하는 이유

1회차에서 배운 스테이징 영역은 "커밋할 것만 골라 무대에 올리는 곳"이었습니다.

$ git add login.ts
$ git commit -m "fix: 로그인 실패 시 무한 로딩 수정"

$ git add README.md
$ git commit -m "docs: 로그인 안내 문구 갱신"

파일을 한꺼번에 수정했더라도 커밋은 의도별로 나눌 수 있습니다. 스테이징은 좋은 커밋 단위를 만들기 위한 도구입니다.

오늘의 판별법

커밋 메시지가 "A 그리고 B"가 되면 쪼개세요. 한 커밋은 한 가지 의도를 설명해야 합니다.


이제 어제 clone한 저장소에서 originupstream이 각각 무엇을 가리키는지 정리합니다.