У меня есть git-модель ветвления, очень похожая на ту, что описана в gitworkflows http://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html и здесь http://members.cox.net/junkio/git/MaintNotes.html
У меня есть некоторые сомнения относительно того, как именно закончить ветку и что делать скоммиты, исправляющие ошибки, возникающие только при взаимодействии двух разных ветвей.
В частности, у меня есть следующие ветки:
production: точно так же, как развернуто на нашем производственном сервере.
исправления: разветвленные от вершины «производства», где я исправляю ошибки и позже перенесу «добычу» в нее (и повторно развертываю)
несколько ветвей функций: каждая новая функция создается изолированно
тест: где я объединяю каждую ветвь функций, которая достаточно зрелая
all: где я объединяю каждую функцию, независимо от того, насколько новой или непроверенной она является
Скажем, я объединяю ветви функций F1 и F2 в этом порядке в «тест».Оказывается, они не очень хорошо играют вместе, поэтому я фиксирую исправления C1 и C2 (прямо в 'test');Позже я объединяю третью ветку F3 и продолжаю исправлять ошибки, возникающие из-за того, что эти ветви не взаимодействуют должным образом (если я обнаружил ошибку в одной конкретной функции, я бы исправил ее в своей собственной ветви, а затем заново объединил).Позже я хочу закончить только F2, потому что F1 и F3 еще не готовы (или потому что клиент находится на прихоти), поэтому я объединяю эту ветку непосредственно в «production».
Что делать дальше?
Что делать с исправленными ошибками, которые были в «тесте» и включали взаимодействие F2 с F1 или F3 (например, C1 и C2)?Должен ли я выбрать их в соответствующую еще не законченную ветвь?Не слишком ли много ручного труда?
А как насчет «теста»?Должен ли я отказаться от него и построить его заново из нового совета «производства»?Если это так, как избежать потери исправлений для веток, которые еще не находятся в «производстве»?снова вишня?Есть ли способ обновить «тест», который не требует сброса / перебазирования?
Было бы лучше вернуть слияние (я) F1 и F3 в «тест» икак только у меня будет только F2, объединить «тест» в производство?Обратите внимание, что эта модель также требует от меня исправления ошибок, связанных с веткой, которую я возвращаю.