2014-11-01 5 views
0

Я создал ветку от мастера и представил 2 фиксации на ветке.Как я могу переместить ветку (или указанную фиксацию) в другую ветку?

Теперь мне нужно объединить ветку обратно в мастера, так как мастер изменился, я объедую больше коммитов в мастер, чем только мои 2 фиксации.

Какое оптимальное решение здесь? Могу ли я переместить ветку (с 2 коммитами) в новый мастер? Я имею в виду, если я хочу объединиться в мастера, я должен только представить 2 коммита. И я надеюсь, что то, что я сделаю, не повлияет на других, которые работают в одном хранилище.

Я попытался GIT перебазироваться, но это портит со многими фиксаций, чем просто эти 2.

+0

'git merge --help' – hjpotter92

ответ

1

Если вы не намерены полностью объединить вашу ветку к мастеру, но нужны эти два коммиты на мастера, вы можете попробовать вишневый выбор.

См. "How to cherry pick a range of commits and merge into another branch" и git cherry-pick man page.

У вас есть другие варианты (даже с помощью git merge) подробно в «Is it possible to exclude specific commits when doing a git merge?»

0
x----x-----x---x---master 
     \ 
     `--x---x--your branch 

Если это ваше состояние, то это ваши варианты:

  1. Вишневый выбрать коммиты из вашей отрасли на мастер
  2. Восстановите свою ветку на мастер, а затем объедините мастер в
  3. Объедините свою ветку в мастер.

Независимо от того, что вы делаете, как только вы подтолкнули свои изменения, другие, вытаскивающие из того же репозитория, который вы нажали, получат все необходимые коммиты.

Когда вы пытались переустановить, это не Git «возиться со многими коммитами». Вероятно, вы столкнулись с конфликтами, которые необходимо решить. Гит только создавал бы два новых коммита, на вершине мастера, не так много.

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

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