Мерзавец родительского дерева случайно толкнул в поддерево

Я разделил один репозиторий на 3, репозиторий отслеживания с поддеревом git и два репозитория, которые я разделял на модули. Каким-то образом мне удалось отправить версию с поддеревьями в один из дочерних репозиториев, который испортил структуру.

Вот они для справки:

  • child1, который сейчас испорчен

  • child2, это кажется нормальным

  • родитель, это должно содержать два других

Как я могу восстановить репозитории?

1 ответ

Решение

Во-первых, сделайте резервную копию, так как вы будете уничтожать историю.

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

cd path/to/separate/broken/child1
git reset --hard 7b202bfc915042c714aeca9516daf67d81c36b61

принудительно протолкнуть эти изменения на пульт

git push --force

Проблемы с момента переключения должны исчезнуть. Переключитесь на родителя, а затем нажмите изменения правильно

cd path/to/parent1
git subtree push --prefix path/to/child1/in/parent remotechildname master

Проблема должна быть решена

Другие вопросы по тегам