inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Git & GitHub, 원리부터 차근차근 - 근본깃

커밋 하나만 가져오기 #cherry-pick

cherry pick 질문입니다.

2

창한

작성한 질문수 3

0

강의 8:16 에서 test 브랜치 쪽의 노란색 커밋을 cherry pick 해서 가져왔는데 main 브랜치 쪽의 초록색 커밋과 충돌되어서 둘 중에 하나를 선택한 상황인데

만약에 conflict가 발생하지 않으면서 노란색 커밋만 가져와서 최종적으로 main 브랜치에 [ 빨간색, 초록색, 노란색 ] 을 가진 커밋으로 만들 수 있는 방법은 없는 건가요?

main 브랜치 쪽의 [ 빨간색, 초록색 ] 에서 노란색 커밋만 추가하고 싶은 경우도 있을 것 같아서 질문합니다.

git github

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 창한님, Cherry-pick을 사용하여 특정 커밋을 다른 브랜치에 반영할 때 충돌 문제와 관련하여 질문해 주셨네요.

Cherry-pick과 충돌 해결

git cherry-pick은 특정 커밋을 선택하여 현재 체크아웃된 브랜치에 적용하는 명령어입니다. Cherry-pick을 사용할 때 충돌이 발생하는 이유는 두 브랜치가 동일 파일의 동일 내용을 변경했기 때문입니다. 하지만, 충돌 없이 특정 커밋을 추가하는 방법도 있습니다:

  1. Rebase와 Cherry-pick의 차이:

    • rebase는 전체 커밋 히스토리를 재구성하는 반면, cherry-pick은 특정 커밋만 선택하는 방식입니다.
  2. 충돌 없는 Cherry-pick 사용법:

    • 만약 cherry-pick 중 충돌이 발생하지 않도록 하고 싶다면, 충돌을 피할 수 있는 상황을 만들거나 수동으로 충돌을 해결한 후에 cherry-pick을 수행합니다.
    • 예로, [ 빨간색, 초록색, 노란색 ] 순서로 커밋을 만들고 싶다면, 노란색 커밋에서 수정된 코드가 초록색 커밋에서 수정되지 않아야 합니다.
  3. 기타 대안:

    • 가능하면 노란색 커밋 이전에 초록색 커밋을 고정하고 작업하는 것이 유리합니다.
    • 충돌이 없어도 [ 빨간색, 초록색, 노란색 ]으로 커밋을 재작성하려면, 현재 브랜치를 노란색 커밋을 추가하려는 순서로 재배열한 후에 병합하시기 바랍니다.

참고 자료

여기 유사한 개념에 대해 설명하는 게시물을 참고하시면 더욱 도움이 될 것입니다:
- Git Cherry-pick 개념 및 실습

질문에 대한 충분한 해답이 되었기를 바랍니다. 혹시 추가로 궁금한 점이 있다면, 계속 질문해 주세요. 곧 지식공유자께서 추가적인 설명을 드릴 수 있을 것입니다.

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

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

0

88

2

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

0

69

1

upstream연결하기

0

88

2

gitignore관련 질문

0

95

2

staging area

0

93

2

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

0

113

1

git pull merge 요청 시 draft

0

204

2

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

0

116

2

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

0

85

1

vscode에서의 github로의 푸시

0

127

2

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

0

155

2

git add 동작 원리에 대한 질문

0

70

2

git flow 문의

0

122

2

git rebase 질문

0

108

2

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

0

185

2

pull request 취소하기

0

805

2

.gitignore

0

84

2

Commit 메시지 변경 방법

0

610

2

switch 와 checkout 차이점.

0

317

1

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

0

159

4

강의 교재 다운로드

0

106

1

git init에서 오류 발생

0

302

2

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

0

111

2

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

0

149

2