Есть ли способ раздавить коммиты в форке после того, как запрос на извлечение был принят к исходному репо? - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть ветвь репозитория, где я пишу свои части кода.Я сделал большую ошибку, написав фрагменты кода (обычно это ~ 50-100 строк кода SQL) в основную ветвь fork (хотя я не осознавал этого в то время), а затем вытянул запрашивающую главную ветвь forkв основную ветку происхождения.

Настройки в исходном репо позволяют мне только раздавить и объединить коммиты.Так что сейчас я нахожусь в ситуации, когда каждый запрос на извлечение данных похож на 60 коммитов и 1 файл изменен (фактический, над которым я работал).

Есть ли способ каким-то образом синхронизировать состояния исходного репо и форка, чтобыудалить все ненужные коммиты из главной ветки?

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

После некоторых исследований мне удалось найти работоспособное решение:

  • Найти хеш коммита перед первым коммитом
  • git reset --hard
  • git push-f мастер источника
  • мастер git pull в восходящем направлении
  • мастер источника git push

И мой форк (здесь источник) синхронизируется с восходящим.

0 голосов
/ 20 апреля 2019

Быстрый ответ

Во-первых, используйте fetch в своем fork, чтобы получить информацию о состоянии origin (исходное РЕПО)

Затем вы сможете сравнить их состояния и решить, что вы хотите сделать.

Вы сможете переписать историю вашего fork, чтобы соответствовать origin
Труднее будет внести изменения в origin, чтобы они соответствовали вашему fork, хотя:

  • Вам понадобятся полномочия толчка на origin, чтобы переписать историю
  • Еслиу вас его нет, вам нужно будет согласовать это с кем-то, кто может сделать это для вас
  • Поскольку origin передается другим людям, они должны быть уведомлены, поскольку это может прервать то, что онивы работаете с

Чтобы получить более подробный ответ о том, какие операции могут помочь вам в этом, вам необходимо предоставить более подробную информацию о текущем состоянии origin и вашем fork, а такжекакое состояние вы намереваетесь для них.Эта команда может помочь:

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