2015-06-03 3 views
0

У меня есть ветвь git, на которой я работаю над функцией, которая потребовала изменений в менее связанных частях кода.Правильная операция git для слияния части ветки

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

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

master A---B---C---D 
      \ 
f1   E---F---G---H 

В приведенном выше примере Н не является устойчивым, но работать до G есть и новая ветвь в D должна опираться на эту работу, а не на старой работе.

Так что мне кажется, что я хотел бы объединиться в G на D со всей историей G ... это правильная идея?

Что такое операция, называемая терминологией git? Может быть, вишневый выбор диапазона фиксации от E до G?

Или, возможно, можно разветвить мою новую ветку от G, а затем переложить на D? Благодаря

ответ

1

Я думаю, что вы просто хотите, чтобы объединить G в D:

git checkout D 
git merge G 

После этого ваша история будет выглядеть следующим образом:

master A---B---C---D---M <-- HEAD 
      \  /
f1   E---F---G---H 

Я бы посоветовал против перебазирования EG на вершине D , так как будет намного сложнее объединить H в мастера.

+0

В вашем примере в 'git merge G', G - это только хеш-фиксация? (извините бит n00b до git еще) – Toby

+1

yupp, hash отлично работает –

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