2016-11-30 7 views
1

Итак, сценарий таков:Как обновить текущую ветку, сохраняя при этом дополнительную работу?

Мне нужно было выполнить работу над функцией, которую я реализую, называемой «split». Я создал ветку под названием split и выполнил всю свою работу над ней.

В то же время произошли разрушительные изменения, которые потребовали реализации в производстве, поэтому я переключился на мастер, совершил свои изменения и развернул их.

Теперь я вернулся к работе над ветвью «split». Я проверил его сегодня утром, но теперь мне нужно довести его до скорости с главной ветвью, которая содержит измененные изменения, которые я реализовал.

Как это сделать?

ответ

1

git rebase master, а затем разрешить конфликты, и все готово. Но это нужно делать только в недвинутых локальных филиалах, на которых не работают другие пользователи. Если потенциально у других есть филиалы на основе вашего филиала, вы должны лучше объединить последние изменения мастера в свою ветку функций, но с rebase вы получите более удобную линейную историю, а не историю лестниц.

0

Вы можете установить pull master, чтобы получить прерванные изменения.

$ git checkout split     # go to split branch 
$ git pull origin master    # pull, take the master's changes 

Или, вы можете rebase. Возьмите все изменения мастеров и положите фиксацию на top in git log.

$ git fetch 
$ git pull --rebase origin master 
0

Вы должны merge или rebase мастер филиала к вашей особенности отрасли.

Прежде всего, у вас должно быть commit или stash все изменения, которые есть на ветке функций, так что рабочий каталог чист. Затем сделайте git rebase master для переустановки или git merge master для слияния. Также хорошо понимать разницу: https://www.atlassian.com/git/tutorials/merging-vs-rebasing/.