Как сделать слияния git таким образом, чтобы их было легко откатить?

Много говорят о том, как нелегко "отменить" слияние в git. Краткая версия: если вы отмените фиксацию слияния, это также говорит git никогда не объединять эти изменения в будущем.

Могу ли я что-то сделать при выполнении слияния, чтобы решить эту проблему? Существует множество ситуаций, в которых отмена слияния была бы действительно очень полезной только в ходе обычного процесса разработки программного обеспечения и, что более важно, для управления состоянием ветки выпуска, когда необходимо откатить изменения.

править

Я видел решение в этой статье и на самом деле не считаю его решением, скорее, объяснением проблемы. Для этого требуется

  1. всегда использовать --no-ff
  2. помнить все отмененные слияния, когда вы хотите вернуть код, который зависит от них (это может быть несколько часов, дней, недель или месяцев в будущем. …)

что я хочу

Вот как это работает в Subversion. Скажем, у меня есть ветка под названием «релиз-кандидат», которую мы запускаем на промежуточном сервере и где тестируем функции. Скажем, я сливаюсь в ветку функции A. В Subversion это все одна ревизия, и вся история для всех файлов объединена. Скажем, нам это не нравится, поэтому мы хотим это убрать. Мы просто отменяем этот единственный набор изменений и не делаем не надо думать ни о чем другом. Мы можем объединить функциональную ветку A обратно в любое время в будущем, не запоминая, что мы в какой-то момент слили ее и удалили.

Я хотел бы быть в состоянии приблизиться к этому потоку насколько возможно . Я бы хотел оптимизировать, чтобы «не вспоминать что-то в будущем», даже если это каким-то образом заставляет вещи делать больше шагов по пути. (это может быть невозможно ...)

9
задан Aziz Shaikh 4 December 2015 в 02:00
поделиться