Очистка git-репо * и * сохранение коммитов после злых действий - PullRequest
0 голосов
/ 13 марта 2012

Я сделал зло в 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?

1 Ответ

1 голос
/ 14 марта 2012

Судя по тому, что вы описали, я бы сказал, что, вероятно, вашей лучшей ставкой будет вторая возможность, упомянутая в вашем комментарии, а именно: продолжайте изменять «Зло» до тех пор, пока оно не станет максимально точным, а затем выберите «Основной» сбросить туда, где зло. Любой нижестоящий пользователь может перебазировать (используя флаг --onto) на «новый мировой порядок» из «Зла».

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