2016-11-23 2 views
2

tfs 마이그레이션 (완전히 다른 분기 개념) 후에 여러 릴리스 분기에 수정 사항을 병합해야하지만 분기가 동일하지는 않지만 대부분 유사하지만 다른 제품 예를 들어 다른 브랜딩, conn 문자열 등), 그래서 여기에 하나의 제품 분기 전략을 nvie gitflow 사용할 수 없습니다.git 분기를 여러 릴리스 분기에 병합하는 방법

enter image description here

여기

https://github.com/MrKekson/stackoverflow_question/network

할 수 있습니다 크게 간소화 분기 구조를 발견하고 기본적으로 나는 tesztb3에, B1에서 핫픽스 1 분기를 병합 할, 그러나 B1의 이전 커밋없이 (C3, C4).

Cherrypicking 또는 rebase가 도움이 될 수 있지만 끝내지 못했습니다. 아직 고급 git 사용법에 대한 경험이 많지 않습니다. 그러니 어떻게해야하는지, 아니면 끝내기 위해 무엇을 바꿔야하는지 조언 해주십시오.

+1

또한 정확하게 시도한 내용을 언급해야합니다. Cherrypicking은 아마도 당신이 원하는 것이지만, 시도한 cherrypicking 및 rebasing 명령과 예상되는 결과를 얻지 못한 이유를 명시해야합니다. – Vampire

답변

0

좋아, 해결 했어. 적어도 몇 가지 방법이 있습니다 :

기본적으로 teszt3에 대한 hotfix1의 모든 커밋을 개별적으로 선택할 수 있지만 어색합니다.

그래서 우리는 b1에서 병합 분기를 만들고, 그 안에 hotfix1을 병합 한 다음, merge에서 작성한 커밋을 tesztb3으로 가져 와서 testb3에 새로운 커밋을 생성합니다. -x를 cherry-pick에 추가 할 수도 있습니다. 따라서 새 커밋에 대해 부모가 GUID로 메모를 작성하거나 hotfix1 브랜치를 1 커밋으로 스쿼시하고 체리 선택을 할 수 있습니다.

아니면 다음,

git rebase --onto <new-parent> <old-parent> <lastcommit> 

--onto explained here을 마지막 커밋 (HF2)를 기반으로 REBASE 분기를 만들 수 있지만 <new-parent>는, 내가 목표에 이것에 대한 병합 지점을 만드는 선호하는 목표 지점 teszt3입니다 branch, old parent는 hotfix1의 시작이고,이 경우의 lastcommit은 hotfix1의 hf2입니다. 그런 다음 teszt3을 새 병합 분기에 병합하고 teszt3에 다시 요청을 만듭니다.

그래서 어느 경로도 처음에는보기 쉽지만 약간의 경험으로는 가능하다고 생각합니다.이 이벤트는 tfsvc에서 디렉토리의 이름을 바꾸는 방식이 부드럽습니다.

관련 문제