본문 바로가기

Git,Github

Atomic commits / Commit 메시지는 현재? or 과거?

개념부터 슥 읽어보자

 

Atomic Commits

 

작업들을 그룹화하여 단일 작업으로 커밋한다.

 

  • Atomic : 더 이상 줄일 수 없는 기본 단위로 큰 시스템을 구성하는 단일 요소
  • 커밋은 단일 기능이나 단일 변화, 수정을 포함해야 한다(=각각의 커밋은 한 가지에 집중해야 한다)
  • 각 커밋을 한 가지에 집중할 수 있도록 최대한 원자성을 유지하는 것이 중요하다
  • 파일 하나가 아닌 작업하고 있는 하나의 기능, 하나의 작업을 의미한다.
  • 여러 작업을 수정했을 경우 git add . 명령을 사용하면 단일 작업이 아닌 변경된 모든 사항이 스테이지에 올라간다.

 

단일 목적을 유지해야 하는 이유

  • 한 커밋에 모든 변경사항들을 통합했을 경우 커밋을 롤백하면 엄청나게 많은 작업들을 취소해야 할 수도 있다.
  • 하지만 커밋을 원자적으로 단일 목적으로 유지했다면 누군가 작업 중 하나를 실행취소해도 다른 작업들은 모두 유지할 수 있다.
  • 코드를 컴토할 때 검토하기 쉽게 해준다.

출처 : https://velog.io/@ryeoni/Atomic-Commits

 

[Git] Atomic Commits

Atomic Commits > 작업들을 그룹화하여 단일 작업으로 커밋한다. Atomic : 더 이상 줄일 수 없는 기본 단위로 큰 시스템을 구성하는 단일 요소 커밋은 단일 기능이나 단일 변화, 수정을 포함해야 한다(=

velog.io

 

데이터베이스의 ACID의 Atomicity랑은 좀 다르다!

깃에서 말하는 원자성은 쉽게 말하면

잘게 쪼개라는 소리다.

 

'귀찮게 왜? 그냥 한꺼번에 add .  해서 다 해버리지...'

라고 하는 사람은 팀단위 프로젝트를 안해본 사람이다

 

나는 그래도 좀 익숙해졌지만, 깃이란 개념을 처음 접한 사람들은 당황하면서

우왕좌왕하게 된다. '으레' 강사들이 하는것처럼 add. commit 블라블라 하게 되는데...

 

팀단위로 git flow를 적용하면서 하다 보면(물론 나도 완벽하게 하지는 못했지만)

서로 Merge 하는 과정에서 대참사(...)가 벌어지는 경우가 많다.

 

농담이 아니라 Merge하는 과정에서 커밋관리를 제대로 하지 않았기 때문에

버전 충돌도 일어나거, 컨플릭트를 해결하는 과정에서 엄청난 노가다를 하게 된다.

 

그런 의미에서, 커밋을 잘게 쪼개서, 불의의 사태에 대비해

Rollback하는것이 굉장히 유용하다 

 

Version control이 그래서 중요한거다.

 

추후에 내가 겪었던 여러 상황들과 더불어

Git과 Github관련 이야기도 올려보려 한다

 

특히 깃이란걸 처음 접해보는 사람들에게 미약하게나마 도움이 되고자 한다

 

Commit 메시지는 현재로 써야하나 과거로 써야하나?

 

사실 그리 중요하지는 않은 문제인데

 

Git 오피셜로는 현재시제를 추천하지만,(고치다, 수정하다)

다른 그룹들은 또 과거시제 (고쳤다, 수정했다...) 가 맞다고 주장하는

 

예송논쟁이 벌어지고 있는데...

 

본인같은 경우는 현재시제로 한국어,

영어로는 과거형을 사용한다

 

Make API for create posts 
포스트 관련 API 구성

 

근데 딱 정해진건 없으니 그냥 본인이 현업에 가면 있는 스타일로

적응하도록 하자. 

 

내 스타일은 나 혼자 작업할때 고집하자.