2014-07-26 3 views
0

У меня есть репозиторий git с количеством ветвей, каждый из которых представляет собой одну функцию или исправление. Я хочу создать новую ветку, которая включает в себя все теги этих ветвей для тестирования, но я не хочу изменять или удалять существующие ветви, и я не хочу влиять на мастера. Каков наилучший способ сделать это?Как пересадить несколько ветвей на новую тестовую ветвь в git

Так что у меня есть, в сущности

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

и я хочу достичь

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

Я мог бы просто клонировать репозиторий, объединить филиалы в клоне, и испытание против хозяина на клон. Это просто, и я думаю, менее рискованно, чем играть в игры с филиалами, но мне любопытно, можно ли сделать это за один репо?

ответ

0

с вашей диаграммы, я предполагаю, что вы хотите использовать 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 

Rebase исправления и функции в тест-их-всех филиалов

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 

вернуться в исходное состояние, а не удалите все тестовые ветви

Смежные вопросы