Случайно добавил коммиты других в мой PR, используя git rebase - PullRequest
0 голосов
/ 10 июня 2018

Я собирался сделать больше работы над функцией, и перед кодированием я запустил git pull --rebase upstream master.Затем побежал git push origin feature-branch;это привело к одной из тех ошибок «быстрой перемотки вперед», в которой я тогда запустил git pull origin feature-branch.После этого я исправил конфликт слияния и снова запустил git push origin feature-branch.Теперь мой pr от feature-branch до master загрязнен коммитами других.Я заметил, что эти вопросы задавались ранее, но никогда ответил .

Может кто-нибудь объяснить, что я сделал не так и, возможно, как это исправить?

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Если ваша текущая ветвь имеет коммиты, которые вы хотите сохранить (ваши собственные) смешанными с коммитами, которые вы не хотите (те, которые были добавлены ребазой), вы можете использовать git rebase --interactive, чтобы снова отредактировать вашу ветку и оставить толькокоммиты, которые вы выбираете.

Сначала найдите хеш коммита перед последним, который вы, возможно, захотите отредактировать.Если ваша ветвь изначально была основана на master, хорошим коммитом является тот, который возвращается git merge-base HEAD master.

Далее, начните интерактивное перебазирование с текущего коммита на этот старый коммит:

git rebase --interactive f1c3d284

В вашем текстовом редакторе появятся строки, представляющие каждый коммит в вашей ветке, и инструкции из Git под ними.Как сказано в инструкции, замените pick на drop для каждой строки, представляющей коммит, который вам не нужен.Когда вы сохраните и закроете документ, ваша текущая ветвь будет перестроена в соответствии с этими инструкциями.

0 голосов
/ 10 июня 2018

Я понял:

Запишите хиты git commit для всех коммитов в PR, которые вы хотите сохранить (т.е. ваши коммиты).

Затем выполните следующее:

git fetch upstream
git reset --hard upstream/master
git cherry-pick <hash 1>
git cherry-pick <hash 2>
// cherry-pick all of your commits then:
git push -f origin your-branch

И это должно исправить ваш PR автоматически

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