возвращение моей удаленной главной ветки git в конкретный коммит - PullRequest
0 голосов
/ 28 сентября 2018

Я исследовал это в течение последних двух дней и пробовал разные вещи, которые нашел, и продолжаю сталкиваться с проблемами при каждом подходе, который я пробую.

Мы непреднамеренно выдвинули некоторые изменения, предназначенные для будущего выпуска, вmaster и теперь хотим вернуться к коммиту, соответствующему нашему текущему выпуску.

Мы должны доставить код master через pull-запрос.

Я пробовал различные подходы, которые могутсбросьте HEAD на моем локальном компьютере до версии, которую я хочу, но я не могу затем создать запрос на извлечение, который будет объединен с мастером (или копией для целей тестирования).

Я пытался отменить все коммиты с момента последнегохорошая версия, но я получаю конфликты слияния.Это я действительно не понимаю, так как наверняка будет идти назад по шкале времени, когда будет известна предыдущая версия файла.

Никто в нашей команде не развивается против мастера, и все были бы рады вернуть мастера к правильной версии, поэтомунет проблем с историей, возвращающихся к правильной фиксации.

Есть ли простой способ сделать это?Хакерский способ, который я рассматриваю: скопировать все файлы из коммита, который мы хотим, извлекать ветку master_merge, удалить все файлы, скопировать файлы из хорошего коммита, создать запрос на извлечение.Почему-то кажется, что это не очень хорошая идея, но я потерял полтора дня, пытаясь разобраться в этом, и похоже, что это сделало бы работу.

Любые идеи будут высоко оценены

Спасибо

Расс

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Вы должны иметь возможность использовать push push предыдущий идентификатор для данной ветви.

Скажем, вы хотите "вернуть" мастер на удаленном источнике к тому, что он имел без двух последних коммитов.

Получите sha1 ревизии, которую вы хотели бы включить (например, с помощью git log), затем принудительно нажмите на нее

git push origin -f whatever-sha1-id:master

, которая установит удаленный мастер начто было без последних 2 коммитов.

0 голосов
/ 28 сентября 2018

Я думаю, что ответ на ваш вопрос гораздо больше о вашем процессе и о том, чего вы хотите достичь.

  • Вы оставляете мастер на нем и создаете тег для коммита, который вы хотите, изатем вы тянете оттуда на случай, если хотите развернуть эту версию.
  • Вы можете выбрать коммит из одной ветви в другую.Это фактически сделает то, что вы упомянули в своем вопросе, но вы сохраните любой другой дополнительный код, который у вас уже есть.
  • Вы можете отменить ваш коммит.
  • Вы можете различать два кода, удалитьдополнительный, а затем совершить, как вы хотите.Это если вы не против потерять код, который был написан с версии, на которую вы выполняете откат.

Не думайте, что выбранное вами решение хорошо или нет, подумайте, будет ли онопредоставит вам необходимую информацию, будет выполнено безопасно, в разумные сроки и позволит вам поддерживать поток после этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...