вернуть несколько веток, объединенных для разработки - PullRequest
0 голосов
/ 04 января 2019

Итак, у меня есть ветвь с именем BRANCH_A, а есть другая ветвь с именем BRANCH_B, которую эти две ветки объединили для разработки ветки.Теперь что-то пошло не так в BRANCH_A, по некоторым причинам это выглядит как регрессия, возможно, плохо слился, после этого слияния у меня было несколько незначительных коммитов также в BRANCH_A, в любом случае мне нужно вернуть обратно BRANCH_A к безопасному коммиту до того, как это слияниеполучилось.Я следую за другими подобными сообщениями о проблемах в стеке, и сделал это, как показано ниже:

сначала внутри BRANCH_A Я создаю резервную ветвь:

git branch BACKUP_A

Затем сбросил со вчерашнего дня SHA, чтокоммит как раз перед тем, как произошло это объединение:

git reset --hard SHA

Затем укажите BRANCH_A на резервную ветвь:

git reset --soft BACKUP_A

Затем зафиксируйте:

git commit -m "Revert to SHA id"

и нажмите:

git push

Это вернется к этому коммиту, но дело в том, что у меня все еще есть другие изменения ветки (для BRANCH_B) при этом слиянии, и это только возвращает те незначительные коммиты, которые я сделал после слияния.

Как я могу отменить таким образом, чтобы я получил рейд этих изменений из другой ветви (BRANCH_B) и сохранить только те изменения, которые я действительно сделал в BRANCH_A (коммит до слияния).

1 Ответ

0 голосов
/ 04 января 2019

Таким образом, я смог решить эту проблему, выполнив следующие действия:

Внутри branch_a, в которой возникла проблема:

Git reset —hard commitID
Git merge origin/develop
Git push -f

Затем оформить заказ и удалить branch_a

git checkout develop
git branch D branch_a

И закажите еще раз

git checkout branch_a

Надеюсь, это сработает для тех, кто сталкивается с подобной проблемой.

Примечание: будьте осторожны при запуске Git push -f, потому что если вы сделалиошибка, вы потеряете свой код

...