2014-07-26 3 views
0

각 분기마다 하나의 기능이나 수정을 나타내는 git 저장소가 있습니다. 테스트를 위해 모두 브랜치를 포함하는 새 분기를 만들고 싶지만 기존 브랜치를 변경하거나 제거하고 싶지 않으며 마스터에 영향을 미치고 싶지 않습니다. 이 일을하는 가장 좋은 방법은 무엇입니까?git에서 새 분기에 여러 분기를 이식하는 방법

그래서 효과

     -- G -- H [feature1] 
        /
A -- B ---------- C -- D [master] 
    \ -- E [fix1] \ 
       \ -- F [fix2] 

에서,이 있고 난 그냥의 REPO를 복제 복제에 가지를 병합하고, 마스터에 대한 테스트에 수

     -- G -- H [feature1] 
        /
A -- B ---------- C -- D [master] - 
    \ -- E [fix1] \     \ 
       \ -- F [fix2]  \ 
             \ -- E -- F -- G -- H [test-them-all] 

를 달성하기 위해 원하는 것을 클론. 간단합니다. 지점을 가지고 게임하는 것보다 덜 위험하다고 생각합니다.하지만 단일 레포에서 할 수 있다면 궁금합니다.

답변

0

다이어그램에서 rebase를 사용하여 빨리 감기 병합을 수행한다고 가정합니다. (경고, 나는이 모든 명령을 테스트하지 않았고, 절대적인 진리가 아닌 가이드로 사용한다.)

각 브랜치의 끝에 두 번째 브랜치를 만든다. (롤백하지 않고 rebase를 할 수있다.)

git checkout fix1 
git checkout -b fix1-test 

git checkout fix2 
git checkout -b fix2-test 

git checkout feature1 
git checkout -b feature1-test 

git checkout master 
git checkout -b test-them-all 

수정을 리베이스와-모든 테스트 - 그 지점에게로 그리고

git checkout fix1 
git rebase test-them-all 
git checkout test-them-all 
git rebase fix1 

git checkout fix2 
git rebase test-them-all 
git checkout test-them-all 
git rebase fix2 

git checkout feature1 
git rebase test-them-all 
git checkout test-them-all 
git rebase feature1 

기능 테스트 - 그들 모두 분기에 테스트를 할 그들이 통과 가정하고 어떤이 없습니다 새로운 커밋 마스터하기 :

git checkout master 
git rebase test-them-all 

대신 원래의 상태로 돌아가 모든 테스트 지점을 삭제

관련 문제