2016-07-07 2 views
2

Мы недавно начали использовать GIT, и наш процесс для каждой задачи/истории (гибкий) мы создаем ветку.Лучшая практика при вытягивании ветвей истории из git

В некоторых случаях отделяемые ветви, которые были объединены, необходимо вытащить. Каков наилучший способ сделать это?

Начиная с TFS мы использовали этикетки, и было легко указать конкретные элементы на старый набор изменений, но с GIT. Я не уверен, как это сделать лучше всего. Похоже, было бы легко, если бы это был последний толчок, но если есть 10 толчков после того, как я должен отменить все эти, а затем сделать еще один запрос на тягу с теми, которые я хочу?

+0

Было бы здорово, если бы 'git-rebase - interactive' разрешала только перезарядки сливаний, но Это не. –

+0

FWIW, это не звучит очень проворно. – jonrsharpe

+0

Это очень плохо, но вы можете попытаться вернуть слияние. http://stackoverflow.com/a/7100005/736079 – jessehouwing

ответ

1

Вы можете вернуться на ветви состояния до слияния, чтобы восстановить объединенное отделение:

git reflog 
git checkout <last_feature_commit_number> 
git checkout -b <feature_branch> 

Затем обновите эту новую ветвь на вашей ветке релиз

git pull --rebase origin <release_branch> 

Если у вас есть конфликты, разрешить его, добавить файлы в стадии и исполнении git rebase --continue

Вы можете просматривать сообщения, которые собираетесь подготовить для объединения с git log <release_branch>..<feature_branch>

Наконец объединить эту ветку в отрасли выпуска:

git checkout <release_branch> 
git merge <feature_branch> 

Предполагая, что ваша локальная машина принимает слияние фиксации. Если нет, вы можете попытаться получить удаленный рефлок, но я не знаю, всегда ли это возможно (см. git can I view the reflog of a remote? и Can I recover branch after its deletion in git?)

+0

Вы также можете использовать 'git stash' для применения ваших изменений в другой ветке – sboye

2

Я предлагаю вам использовать поток git.

Модель потока git является подходящей моделью и ответит на все ваши вопросы.

Читайте об этом здесь http://nvie.com/posts/a-successful-git-branching-model/ и как только вы закончили чтение, вы будете лучше понимать следующую схему:

enter image description here

«поймать» с потоком мерзавца, что есть полные сценарии которые заботятся о каждом шаге, который вы делаете по пути, поэтому трудно ошибиться.

+0

Я видел это раньше, если бы мне не пришлось переустанавливать его, если бы он был объединен. – user1167777

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