개발자
로컬브랜치에서 commit1, commit2를 한 후 origin master로의 pull request를 올렸습니다. 올린 후에 merge를 기다리지 않고 commit3, commit4를 했습니다. 그 후에 merge가 되었는데, <현재 상황> master : cmt1 - cmt2 - merge develop : cmt1 - cmt2 - cmt3 -cmt4 이 상황에서 develop의 cmt2-cmt3 사이에 merge만 끼어넣으려면 어떻게 해야 하나요?
답변 2
Git의 Rebase 기능을 이용하시면 간단하게 해결될 것 같습니다 :) ``` $ git fetch $ git checkout develop $ git rebase origin/master ```
일반적으로 Git에서 pull request와 merge 사이에 커밋한 내용은 유지됩니다. 따라서, develop 브랜치에서 cmt2와 cmt3 사이에 merge를 끼워넣으려면 다음과 같은 단계를 따를 수 있습니다: 1. develop 브랜치에서 새로운 브랜치를 만듭니다. 이 브랜치는 merge를 끼워넣을 작업을 할 때 사용될 것입니다. 2. 새로운 브랜치로 이동한 후, merge를 끼워넣을 커밋을 cherry-pick 명령어를 사용하여 선택합니다. 여기서 '<commit-hash>'는 merge 커밋의 해시값입니다. 따라서, cmt2와 cmt3 사이에 있는 merge 커밋의 해시값을 사용해야 합니다. 3. 필요한 경우, merge 커밋의 충돌을 해결합니다. cherry-pick 작업 중에 충돌이 발생할 수 있으며, 이 경우 충돌을 해결하고 변경 사항을 커밋해야 합니다. 4. 새로운 브랜치의 작업이 완료되면, develop 브랜치로 돌아갑니다. 5. merge-commit 브랜치에서 작업한 변경 사항을 develop 브랜치에 병합합니다. 이제 develop 브랜치에는 merge를 끼워넣은 커밋이 포함되어 있을 것입니다. 6. merge-commit 브랜치는 더 이상 필요하지 않으므로 삭제합니다. 이제 develop 브랜치에는 cmt2와 cmt3 사이에 merge 커밋이 포함되어 있을 것입니다. 주의할 점은, 이 방법은 이미 merge된 커밋을 수정하는 것이 아니라 새로운 커밋을 만드는 것이기 때문에, Git 히스토리가 복잡해질 수 있다는 것입니다. 이 작업을 수행하기 전에 다른 사람들과 협의하고, 해당 저장소의 정책을 확인하는 것이 좋습니다.
1#1
2git checkout -b merge-commit
3
4#2
5git cherry-pick <commit-hash>
6
7#4
8git checkout develop
9
10#5
11git merge merge-commit
12
13#6
14git branch -d merge-commit
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!