Мерзавец родительского дерева случайно толкнул в поддерево
Я разделил один репозиторий на 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
Проблема должна быть решена