Внесение изменений в два предыдущих коммита в запросе на удаление с очисткой кода - PullRequest
1 голос
/ 01 мая 2020

Я сделал запрос на репо git на github. Запрос на получение состоит из изменений трех файлов:

  1. commit # 34a3f04 - создает файл с новым тестом для патча
  2. commit # e6298db - фактическое исправление для кода
  3. * коммит # 49090b3 - фиксация журнала изменений

    • коммит №3 - это место, где HEAD находится в моем локальном репо.

Так что я облажался и забыл привести в порядок свой код. Таким образом, коммиты № 1 и № 2 не прошли тест Тревиса.

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

1 Ответ

2 голосов
/ 01 мая 2020

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

Перебазируйте и используйте «edit» для изменения ваших коммитов

Описание «edit»: e, edit <commit> = use commit, but stop for amending. Вы можете использовать это для go назад, чтобы исправить вашу привязку или что-то еще на коммите 2 и 3, который затем включит их в эти коммиты снова.

git rebase -i HEAD~3
# use "e" or "edit" for commits 1 and 2
# adjust them as necessary, then git rebase --continue each time

Squa sh все в одном

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

git rebase -i HEAD~3
# choose "s" or "squash", or "f" or "fixup" which is like squash but discards commit
# messages

Вы также можете git reset target-branch-name, который сделает мягкий сброс, сохраняя все ваших изменений между вашей веткой и target-branch-name, но сбрасывает ваши коммиты. Затем вы могли бы исправить весь ваш код вместе и повторно зафиксировать их, когда вы будете sh.


Все эти предложения требуют принудительной операции pu sh, так как вы переписали историю своего местное отделение.

...