Итак, ветка git перешла в непростое состояние:
Две ветки:
* мастер
* other_branch
На прошлой неделе кто-то случайно (преждевременно) слил other_branch с master и отправил в origin. Мы заметили ошибку, и я по своей наивности совершил
git revert bad_merge_commit
, чтобы «исправить» проблему. Все выглядело нормально, мы продолжали жить ...
Сегодня мы попытались объединить master с other_branch как шаг к превращению other_branch в master. Но мой откат, похоже, вызвал кошмар. Когда мастер сливается с other_branch, вся (большая часть?) Работы на other_branch удаляется. Я предполагаю, что это происходит потому, что мой откат предписывает отменить все старые коммиты.
Конечно, теперь поверх моего отката, конечно, много дней коммитов на мастере, поэтому распутать это, похоже, может быть сложно.
] Есть ли способ устранить повреждения? Могу я, возможно, прибегнуть к аргументу о перебазировании и удалить две ошибочные фиксации?
Большое спасибо!
[Обновление - добавление деталей текущего состояния по запросу]
other_branch некоторое время назад был отделен от мастера. Наша стандартная практика - многократно объединять master в other_branch по мере того, как мы идем, чтобы минимизировать накопление конфликтов (иногда мы перебазируем, но не в этом случае).
мастер фиксирует A | B | C | BAD_MERGE [ другое_отрасль_ @ S ] | REVERT_OF_BAD | D | E | F ... HEAD
другая_ветвь фиксирует P | Q | R | S [BAD_MERGE_FROM_HERE] | Т | U | V ... HEAD
Попытка объединить главный HEAD с HEAD other_branch вызывает проблему.
Чарльз, в настоящее время я пытаюсь исправить дубликат главного файла, используя решение, которое вы предложили здесь: Как удалить выбранные фиксировать записи журнала из репозитория Git, сохраняя их изменения? .
[/ Update]