[Git] Commit

youngseo·2022년 3월 30일
0

GIT

목록 보기
4/14
post-thumbnail

Commit

레퍼지토리에 README.md 파일과 main.py를 각각 수정한 후 commit을 어떻게 해야할까? commit의 제목을 어떻게 써야할지? 내용을 어떻게 써야할지? 고민이 될 것이다.

예를 들어 README.md가 문서작성에 쓰이는 파일이고, main.py는 주로 쓰는 소스코드가 적힌 기능개발을 위해 쓰이는 파일이라고 생각해보자. 두 파일의 연관이 있다면 괜찮지만 연관성이 없는 파일들을 한번에 commit을 하게 된다면 이 둘중에 하나라도 어떤 작업이 일어났는지를 찾기가 어려워진다.

따라서 연관이 없는 각각의 파일작업을 한 후에는 commit을 한꺼번에 하는 것이 아니라 문서 단위로 나눠서 작업단위를 구분해줘야한다.

commit 할 때 기억해야 할 것

  • commit은 동작 가능한 최소단위로 자주 할 것.
  • 해당 작업단위에 수행된 모든 파일 변화가 해당 commit에 포함되어야 함.
  • 모두가 이해할 수 있는 log를 작성할 것.
    Open Source Contribution시 영어가 강제되지만, 그렇지 않을 경우 팀 내 사용 언어를 따라 쓸 것.
  • 제목은 축약하여 쓰되(50자 이내), 내용은 문장형으로 작성하여 추가설명 할 것.
  • 제목과 내용은 한 줄 띄워 분리할 것.
  • 내용은 이 commit의 구성과 의도를 충실히 작성할 것.
  • git commit -m은 좋지 않은 습관이다

작업 단위로 commit하기

그렇다면 commit을 어떻게 나눠서 할 수 있을까? 각각의 파일을 따로따로 git add A=> git commit => git add B => git commit 진행한 후 한꺼번에 push를 시키면 된다.

$ git add README.md
$ git status // README.md가 앞접시에 올라온 것을 확인할 수 있다. (아직 메인접시에 main.py가 남아있다.)
$ git commit
$ git status //확인하는 습관 들이기

$ git add main.py
$ git status
$ git commit
$ git status

commit 작성방법

이렇게 작업 단위로 commit을 진행하면서 commit의 내용을 일관성 있지 않게 작성을 하게 된다면, 소용이 없게 된다. 레퍼지토리를 보는 모두가 이해할 수 있는 언어로 이해할 수 있는 형식에 맞춰 작성을 하는 것이 좋다.

conventional commit

  • 커밋 제목은 50자 이내로 요약하여 작성한다
  • 제목과 내용사이 한 칸
  • prefix를 사용하여 한 눈에 커밋의 용도를 알기 쉽게 한다

무엇보다 prefix를 사용해 feat, docs 등 말머리를 보기만 해도 어떤 이유로 commit이 진행되었는지를 확인할 수 있도록 하는 것이 중요하다.

prefix

  • feat: 기능 개발 관련
  • fix: 오류 개선 혹은 버그 패치
  • docs: 문서화 작업
  • test: test 관련
  • conf: 환경설정 관련
  • build: 빌드 관련
  • ci: Continuous Integration 관련
  • refector: refactoring

prefix예시

docs: Create index.html  : 파일 생성 후 
feat: Print 'hello'
feat: Add if Statement
feat: Create fzzbuzz.py
feat: Print fizz if i is times of 3
feat: Print fizz if i is times of 5
feat: do fizzbuzz more pythonic
refactor: Do fizzbuzz with 1 if statement 
fix: Rename README.md to LICENSE

0개의 댓글