Как PR и слияние снова после возврата PR с помощью кнопки Github Revert
В основном я использовал Github вернуть кнопку, чтобы вернуть предыдущий PR для ветки в master
, затем Я решил объединить ту же самую ветвь функции, которую я вернул ранее, но я не смог этого сделать. Шаги, как следует:
- PR для объединения ветки в
master
- Отменить слияние PR из (
master
)
- Попробовал создать новый PR, чтобы снова объединить ветвь функции в
master
.
- Получено это сообщение:
Нечего сравнивать.
master обновляется, все транзакции происходят из ветки свойств. Попробуйте переключить базу для сравнения.
Любые предложения о том, как я могу снова объединить ветвь свойств в master
Ответы
Ответ 1
Просто верните возврат. Таким образом, нажав кнопку возврата, вы создадите новый PR (ваш шаг 2). После того, как это будет объединено, у вас будет возможность отменить это, что создаст новую ветку со всеми вашими изменениями. Затем вы можете потянуть ее, внести в нее изменения (при необходимости) и создать новый PR. Вы потеряете все сообщения фиксации в Github, но все изменения файлов все равно будут. Хорошо ссылаться на свою оригинальную ветку и возвращаться в новый PR.
Все, что нужно, чтобы избежать сложной перестановки или принудительного нажатия на мастер.
Ответ 2
Я знаю, что это старый, но если кому-то нужен хороший ответ здесь:
После того, как вы объединили PR и удалили скобку, а затем отменили это слияние, вы можете создать новую ветвь и затем отменить возврат. Нажмите это для удаленного репо и создайте новый PR.
Это создаст новый PR с одним коммитом с именем 'revert "revert # 123 blabla"' со всеми вашими изменениями в diff.
https://www.tildedave.com/2012/11/24/reverting-a-github-pull-request.html
Ответ 3
Причина, по которой вы не можете автоматически объединиться, заключается в том, что база ветки не синхронизирована с HEAD ведущей ветки.
Отказ от возврата может стать грязным, а иногда и прозрачным.
Кроме того, возврат возвращаемого значения предотвратит слияние других ветвей с этим кодом.
Допустим, у вас есть функция x на master и объединена с веткой y. то вы решаете, что у мастера не должно быть функции x, объединенной в нее, поскольку она зависит от ветки y. Итак, вы возвращаетесь к мастеру. Когда вы пытаетесь объединить ветвь x, команда git -merge видит исходное слияние и счастливо объявляет, что все хорошо, а ветки уже объединены, опустив эти фиксации для функции x, даже если вы хотели, чтобы они слились с ветвью y.
Вы должны вытащить самого последнего мастера, переустановить свою ветку на мастер, а затем вы сможете сделать еще один запрос на растяжение.
Ответ 4
Я пишу этот ответ, так как столкнулся с этой проблемой, и нашел ответы здесь скорее теоретическими, чем практическими. Я немного больше занимался серфингом и нашел метод решения этой проблемы. Более подробный ответ вы можете найти в статье здесь.
Чтобы решить эту проблему, вы должны создать новую ветку, отслеживающую мастер, и отменить фиксацию возврата. Затем оформите оформление ветки и объедините новую ветку. Теперь вы можете разрешать конфликты (если они есть), фиксировать и создавать новый PR.
Вот команды:
# do the needed changes in the feature branch
$ git commit -m "fixed issues in feature-branch'
# create new branch tracking master branch
$ git checkout -b revert-the-revert-branch -t master
# revert the reversion commit
# find it from your git log
# in linux try: 'git log | grep revert -A 5 -B 5'
$ git revert <revert-commit-hash>
# checkout the original feature branch
$ git checkout feature-branch
# merge the revert branch
$ git merge revert-the-revert-branch
# handle merge conflicts and commit and PR