강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

아리마님의 프로필 이미지
아리마

작성한 질문수

Git & GitHub, 원리부터 차근차근 - 근본깃 [완성편]

git flow 문의

해결된 질문

작성

·

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

geek님의 프로필 이미지
geek
지식공유자

안녕하세요, 아리마님!
아래와 같은 방법을 시도해보시기 바랍니다!

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를 사용하여 특정 기능만을 선택적으로 배포하는 방법에 대해 질문 주셨네요.

Git Flow에서 특정 기능만 선택적으로 배포하기

  1. 기능별 브랜치 관리:

    • 각 기능별로 별도의 feature 브랜치를 관리하는 것이 좋습니다. 이렇게 하면 개발 중인 모든 기능이 develop 브랜치에 자동으로 병합되지 않도록 할 수 있습니다.
    • 개발이 완료된 기능은 각각의 feature 브랜치에서 검토 및 테스트 후 develop 브랜치로 병합됩니다.
  2. Release Branch에서의 선택적 병합 (Cherry-pick 방식):

    • 특정 기능(A, C, E)만 배포하기로 결정되었다면, develop 브랜치에서 해당 기능들이 포함된 커밋들만 release 브랜치로 선택적으로 병합할 수 있습니다.
    • 이때 cherry-pick 명령어를 사용하여 개별 커밋을 선택적으로 release 브랜치에 적용할 수 있습니다.
    • 그러나 cherry-pick을 많이 사용하게 되면 커밋 히스토리가 복잡해지고, 어떤 기능이 실제로 배포되었는지 추적하기 어려워질 수 있습니다.
  3. 관리 도구 및 방법:

    • Branch Naming Convention: 명확한 브랜치 및 커밋 네이밍 규칙을 설정하여 어떤 기능이 특정 릴리스에 포함되었는지를 명시적으로 구분하십시오.
    • Release Notes 작성: 각 릴리스 마다 포함된 기능과 관련 커밋들을 기록한 Release Notes를 유지하여 혼란을 줄일 수 있습니다.
    • 확장 클립보드 도구 사용: 불필요한 cherry-pick에 의한 혼동을 최소화하기 위해 GitHub의 Pull Request 기능을 통해 기능 병합 관리 가능.

유사한 질문과 추가 정보를 확인할 수 있는 링크를 제공드립니다:
- Git에서 Cherry-pick 활용과 관리

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

아리마님의 프로필 이미지
아리마

작성한 질문수

질문하기