inflearn logo
강의

講義

知識共有

Git & GitHub、原理から一歩ずつ - 根本Git

git flow 문의

解決済みの質問

114

shout

投稿した質問数 75

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 되어 있는지 막 헷갈리기 시작할 것 같은데 관리가 잘 되기 위해서 혹시 함께 관리되어야 하는 툴 같은 것도 있는지 아니면 방법들이 있는지도 궁금합니다.

git github

回答 2

0

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

communityai8509

안녕하세요, 인프런 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 활용과 관리

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

깃헙 작업 완료된 develop 브랜치 질문

0

77

2

[질문] git-flow 에서 release 브랜치 생성

0

58

1

upstream연결하기

0

76

2

gitignore관련 질문

0

86

2

staging area

0

85

2

브랜치 병합 전략에 대한 지식공유자님의 생각이 궁금합니다.

0

97

1

git pull merge 요청 시 draft

0

170

2

rebase 와 3-way merge 의 근본적인 차이

0

103

2

문서가 락이 걸어져있네요.

0

77

1

vscode에서의 github로의 푸시

0

106

2

Git 머지 커밋 되돌리기(revert)와 머지 방식 선택의 안전성 질문

0

144

2

git add 동작 원리에 대한 질문

0

65

2

git rebase 질문

0

100

2

[추가 질문] 똑같은 브랜치를 다시 pull request하는 경우.

0

172

2

pull request 취소하기

0

706

2

.gitignore

0

78

2

Commit 메시지 변경 방법

0

453

2

switch 와 checkout 차이점.

0

299

1

강의자료 누락, commit 복사질문

0

153

4

강의 교재 다운로드

0

104

1

git init에서 오류 발생

0

283

2

[추가 질문] HEAD 와 COMMIT 관계가 궁금합니다.

0

105

2

HEAD 와 COMMIT 관계가 궁금합니다.

0

140

2

github 협업 내용 관련 질문 있습니다

0

92

2