Есть ли способ, как автоматизировать это, поэтому у меня будет правильный хэш в описании R1?Что-то вроде хэш-прогнозирования?
Короткий ответ - нет.
Более длинный ответ по-прежнему нет, но вам, возможно, не нужно прогнозировать хэш.Проблема в том, что вы копируете фиксированный фикс - давайте назовем это F
- из master
в другую ветку.Давайте назовем этот -x
выбранный вишней коммит Fx
.Вы также можете в конечном итоге скопировать фиксацию исправления в новую фиксацию исправления, потому что вы избегаете использования git merge
в этом рабочем процессе, поэтому, если master
получил новые фиксации, вы используете rebase для выбора вишни F
вновый коммит F'
, который вы добавите к master
, и теперь вы хотите заменить Fx
- выбранную вишней копию F
- выбранной вишней копией F'
.
Итак, вы можете просто сделать это.Если вы перебазируете коммит F
, чтобы сделать F'
, уберите Fx
из другой ветви и повторно запустите git cherry-pick -x
, чтобы скопировать F'
в Fx'
.Вы уже знаете, что это за коммит, потому что у вас есть оригинальный хеш-код F
, и выбор вишни (через rebase) приводит к F'
;и у вас есть F
хэш-идентификатор в Fx
.Недостаток состоит в том, что это переопределяет любые коммиты после Fx
в другой ветви, поскольку «полоса Fx
из другой ветви» может быть нетривиальной.
(Альтернативный подходЕдинственное, что позволяет избежать всего этого, - объединить исправление в обе ветви. См. Как выполнить частичное объединение в git? и связанных статьях блога.)