Я сделал зло в github: использовал rebase, затем нажал --force. Это потому, что я хотел изменить имя, связанное с моими коммитами, и отразить его в репозитории.
Как указано в другом месте, это может иметь последствия для других репо в восходящем или нисходящем направлении.
Следствие, которое я вижу, это повторяющиеся сообщения коммита в репозитории верхнего уровня после того, как они сделали слияние.
У нас есть следующая структура:
Основной (довольно неактивный)
- зло (очень активное)
- другие (очень неактивные)
Мой вопрос: как мне привести Мэйна в хорошее состояние, если у него уже есть несколько коммитов? Мой предложенный план действий:
- git clone Main
- git reset [pre-merge-commit]
- git stash
- git push --force
- git stash pop
- git push
Я немного неохотно делаю это, не будучи уверенным, что это (а) решит проблему и (б) не вызовет больше бедствий. Репозиторий 'Evil' был очень активен, так как он выполнил свой собственный сброс / толчок, и я предполагаю, что им нужно будет сделать что-то вроде:
- git pull
- git reset [самый большой коммит, который все еще существует на главной]
- git stash
- git push --force (чтобы вернуть 'Evil' в состояние, существующее в Main)
- (вытянуть материал из Main и слить нормально)
- git stash pop
- git push (для применения локальных изменений)
Это правильно?
Наконец, в репозитории 'Evil' есть много коммитов, выполненных после сброса / нажатия. Есть ли способ обеспечить сохранение всех сообщений коммита при повторной синхронизации с Main?