관리 메뉴

피터의 개발이야기

[git] 체리픽 Cherry-pick, feature 로그 깔끔하게 merge하기 본문

Programming/GitHub

[git] 체리픽 Cherry-pick, feature 로그 깔끔하게 merge하기

기록하는 백앤드개발자 2024. 2. 10. 17:02
반응형

ㅁ 들어가며

 git에 소스를 머지할 때, 단위 개발에 지저분한 커밋을 dev, 운영에 머지할 때에 불필요한 comment가 올라가는 경우가 있다.

이를 깔끔하게 하는 방법으로 체리픽이 있어서 sourcetree 기준으로 체리픽하는 방법을 정리하였다.

 

ㅁ 체리피킹이란?

체리피킹이란 말은 과수원에서 체리와 같은 과일을 수확하는 과수업자들이 자기들의 상품성을 높이기 위해 좋은 체리만 접는 행위에서 유래한 표현이다. 이는 불리한 것은 무시하고 유리한 것만 골라 취하는 형태를 비유적으로 나타낼 때에 사용된다.

 예를 들자면,

  ㄴ 제품이나 서비스 중 인기 있는 특정 요서만을 골라 경제적 이득을 취하는 행위

  ㄴ 최소의 비용으로 최대의 혜택을 얻으려는 전략적 소비 행태

  ㄴ 금융 분야, 특히 신용카드 혜택만 이용하는 행위
를 언급할 때 사용되기도 한다.

 

[참조] 좋은 것만 찾아다니는 사람들? 달콤함을 쫓다, 체리피킹

 

ㅁ 개발 커밋 커멘트 가정

 ㅇ 개발 요건으로  task1,  task2를 가정해보자.

 ㅇ 각 개발건의 이러저러 커밋내용이 있다.

 

ㅁ feature/task2에서 dev로 merge

 ㅇ task2가 개발 완료되어 dev에 머지하였다.

 

 ㅇ feature/task2와 dev가 커밋된 상태가 확인된다.

 

 ㅇ 현재 브랜치를 보는 스코프는 모든 브랜치인데 이것을 dev로 바꾸어 보면, task2에서 커밋된 세부 설명이 다 나열되어 있다.

 

ㅁ 체리픽 

 ㅇ 모든 브랜치 보기로 변경하고 task1을 체리픽 해 보았다.

 ㅇ 머지에 문제가 없으면 바로 커밋처리했다.

 체리픽 값만 복사해서 dev에 머지를하기 때문에 commit ID가 다른 별개의 커밋이다.

 

ㅁ 코멘트가 정리된 선택적 커밋 == 체리픽

 ㅇ dev에 커밋된 내용만 보면 task1의 다른 커밋 설명은 보이지 않고, 선택한 커밋의 내용만 확인할 수 있다.

 

 ㅇ dev와 task1을 비교해 보아도 내용은 task1의 최종 변경되 버젼이 머지되었다.

반응형
Comments