[Git] 브랜치 merge에 대한 고민과 cherry-pick

변진상·2023년 3월 14일
0

프로젝트 초기 세팅 이후 개발을 시작했다.

우리 팀은 git flow 전략을 선택함에 따라 develop(이하 dev) 브랜치에 기본 세팅(sccafold, 라이브러리 초기 세팅, git hub 등...)후 각자 담당하는 기능의 브랜치를 생성해 작업을 하기로 했다. 아직은 프로젝트에 대한 경험이 많이 부족한 탓에 라이브러리나 초기세팅이 많이 추가되기도 하고 바뀌기도 하는 상황이다.

나의 고민

기본적으로 우리는 dev 브랜치가 더러워지는 것을 방지하기 위해 merge하는 것을 모두 협의 하에 한 번에 진행하기로 했다.

때문에 나는 작업 후 바뀐 dev 브랜치의 commit이나 이력을 현재 작업 브랜치에 반영하기 위해 파일을 복사해 붙이거나 새로운 develop 브랜치에서 다시 새 브랜치를 생성하거나하는 비효율적인 방법으로 이를 해결하곤 했다...(나도 이게 바보같은 건 알지만 아직 git을 자유롭게 다루지 못해 두려움에 본인 생각에 안전한 방법으로 해결하려고 했다...)

분명히 같은 어려움을 겪는 사람이 있을 것이고 이를 위한 방법이 존재할 것이라고 생각이 들어 인터넷을 뒤지기 시작했다.

cherry-pick

// 한 개의 커밋 cherry-pick
git cherry-pick commit-hash

// 여러 개의 커밋 cherry-pick
git cherry-pick commit-hash1 commit-hash4

// 어느 구간의 커밋 cherry-pick
git cherry-pick commit-hash1..commit-hash3

cherry-pick은 특정 커밋, 커밋들, 커밋 구간을 떼와서 나의 커밋에 반영시킬 수 있다. 이를 이용해 나의 문제를 해결할 수 있었는데...

또 다른 문제 발생

기존의 커밋 메세지가 그대로 유지되어 반영되는 것을 확인했고 이를 변경하는 옵션에 대해 조사했다.

// cherry-pick과 커밋 내용을 변경하는 옵션
git cherry-pick -e commit-hash

위의 명령어 사용 후 뜨는 commit 메세지 입력 창에 새로운 메세지를 입력하면 해결된다.
(인라인으로 커밋메세지까지 입력하는 예시를 찾고있지만 쉽지 않았고 시간이 없기에 나중을 기약하려고 한다.)

결과

이렇게 이쁜 트리를 가진 커밋을 남길 수 있었다.

느낀 점

분명히 지구상에는 나랑 같은 고민을 한 사람이 있었을 것이다. 고민해보고 찾아보자!

profile
자신을 개발하는 개발자!

0개의 댓글