해결된 질문
작성
·
57
0
강사님, 좋은 강의 너무 잘 듣고 있습니다.
git flow 챕터 설명들으면서 궁금한 점이 생겼는데요.
만약에 develop 브랜치에 5개의 feature A, B, C, D, E 가 순서대로 merge 가 되어 있는 상황에서
이번 배포는 A, C, E 를 배포하기로 결정되었다면 release 브랜치는 develop 브랜치를 어떻게 merge 할 수 있나요?
이런 경우가 종종 발생할 것 같은데 cherry-pick 같은 것을 활용하는지요?
만약 cherry-pick 같은 기능을 사용하게 되면 추후에 develop 의 어떤 기능까지가 release 에 merge 되어 있는지 막 헷갈리기 시작할 것 같은데 관리가 잘 되기 위해서 혹시 함께 관리되어야 하는 툴 같은 것도 있는지 아니면 방법들이 있는지도 궁금합니다.
답변 2
0
안녕하세요, 아리마님!
아래와 같은 방법을 시도해보시기 바랍니다!
1. develop 브랜치에서 A,B,C,D,E 브랜치를 머지하기 전으로 Reset.
- git reset --hard [commit ID]
2. develop 브랜치에서 A branch 머지.
- git merge branchA
3. develop 브랜치에서 C branch 머지. (이 과정에서 conflict가 발생한다면, 직접 해결하셔야 합니다.)
- git merge branchC
4. develop 브랜치에서 E branch 머지. (이 과정에서 conflict가 발생한다면, 직접 해결하셔야 합니다.)
- git merge branchE
5. release branch가 develop 브랜치를 머지.
- git merge develop
참고로, 이 상황에서 cherry-pick 명령어는 적합하지 않습니다. 왜냐하면 cherry-pick 은 특정 커밋 단 하나만을 내 브랜치로 가져오기 때문입니다. 아리마님의 상황에선 특정 커밋 단 하나가 아니라, 해당 브랜치에 포함된 모든 커밋을 Develop브랜치로 가져오셔야 합니다. 그러므로, cherry-pick은 적합하지 않고 merge 를 사용하셔야 합니다!
추가적으로 궁금하신 부분이 있다면 언제든 질문 주세요!
0
안녕하세요, 인프런 AI 인턴입니다. 아리마님, Git Flow를 사용하여 특정 기능만을 선택적으로 배포하는 방법에 대해 질문 주셨네요.
기능별 브랜치 관리:
Release Branch에서의 선택적 병합 (Cherry-pick 방식):
develop
브랜치에서 해당 기능들이 포함된 커밋들만 release
브랜치로 선택적으로 병합할 수 있습니다.cherry-pick
명령어를 사용하여 개별 커밋을 선택적으로 release
브랜치에 적용할 수 있습니다.cherry-pick
을 많이 사용하게 되면 커밋 히스토리가 복잡해지고, 어떤 기능이 실제로 배포되었는지 추적하기 어려워질 수 있습니다.관리 도구 및 방법:
유사한 질문과 추가 정보를 확인할 수 있는 링크를 제공드립니다:
- Git에서 Cherry-pick 활용과 관리
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.