Вы должны сделать rebase --interactive
свой дизайн филиал в верхней части производства, где:
- вы можете изменить порядок фиксаций, начиная с тех, которые вам нужно в производстве
- вы можете объединить производство до последнего совершить дизайн вы хотите включить (перемотка вперед)
-x--x--x1--x--x2 (design)
\
p--p (production)
с x1 и x2 нуждающейся должны быть включены в производство:
git checkout design
git rebase --interactive production
-x
\
p--p (production)
\
x1'-x2'--x'--x' (design)
Тогда:
git checkout production
git merge x2'
-x
\
p--p--x1'--x2' (production)
\
x'--x' (design)
Это позволяет:
- для проверки текущего дизайна совершает против производства фиксаций (durung в Rebase)
- реорганизовать конструкция совершает
- включают первые в производство
- позволяет последующие слияния от проектирования к производству быть быстродействующим.
Lakshman Prasad добавляет:
Я нажимаю изменения в конце дня большую часть времени. Так что это не очень помогает.Как бы ваши изменения ответа на толкаемом мастер филиал
Я хотел бы сделать то же самое, но с частной отраслью, созданная только для операции:
git checkout master
git checkout -b master-private
-x--x--x1--x--x2 (master, master-private)
\
p--p (production)
, то перебазироваться, на этот раз с частной ветвью (т. е. веткой, которую вы никогда не будете нажимать).
git rebase --interactive production
-x--x--x1--x--x2 (master)
\
p--p (production)
\
x1'-x2'--x'--x' (master-private)
Тогда:
git checkout production
git merge x2'
-x--x--x1--x--x2 (master)
\
p--p--x1'--x2' (production)
\
x'--x' (master-private)
master
не выиграет от фиксации переназначения (с более логичным порядком), но, по крайней мере, вы можете нажать master
каждый раз, когда вы хотите.
И production
может по-прежнему включать именно то, что ему нужно.
Если последующие фиксируетс master
такая же проблема (некоторые должны быть включены в production
, другие позже), я бы:
- удалить
master-private
(мы на самом деле не заботиться о тех, х», копия х совершает от хозяина)
- сделать
master-private
ветви на вершине мастера
- повторно сделать
rebase --interactive
, с разрешением тактикой неочищенного конфликта (в течение первых фиксаций этой master-private
отрасли, за исключением, так как те из них должны быть интегрированы в production
филиал)
-x--x--x1--x--x2--x--x3--x (master)
\
p--p--x1'--x2'--x3' (production)
| \
| x''--x'' (master-private)
\
x'..x' (old x' from the first master-private)
Примечание: мой ответ не совместим с филиалами вы уже подтолкнули (и люди puled с), так как она изменяет SHA1. Но для ветки с недавним контентом, который еще не нажал, это действительный процесс. – VonC