У вас есть несвязанные истории, потому что кем бы ни был другой человек, он удалил ваши коммиты полностью, заменив их всех своими коммитами.
Вы можете удалить его фиксирует и заменяет их вашими, сиськи.Вероятно, это не очень хорошая стратегия, но это вариант, если у вас есть разрешение на использование git push --force
(именно это он должен был использовать для удаления ваших коммитов и замены их своими).
Вы можете объединитьнесмотря на несвязанные истории.Это может быть легко или сложно.Чтобы объединиться, несмотря на несвязанные истории, используйте git merge --allow-unrelated-histories
.Git, по сути, добавит фальшивый коммит перед всеми своими коммитами и перед всеми вашими коммитами, к которым подключаются все его и все ваши.Этот фальшивый коммит совершенно пустой.Поэтому все файлы в его последнем коммите новые, созданные полностью им;все файлы в вашем последнем коммите новые, созданные полностью вами;и Git объединит эти файлы, взяв те файлы, которые являются уникальными для его коммита, и любые файлы, уникальные для вашего коммита, и объявив конфликт слияния для всех оставшихся файлов с одинаковым именем в обоих коммитах.Вам придется объединить каждый из этих файлов вручную.
Конечно, он может затем снова использовать git push --force
, чтобы отменить всю вашу работу.Вы, вероятно, должны убедиться, что он этого не сделает.
В конечном счете, способ решить эту проблему - поговорить с ним и выяснить, почему он отказывается от ваших коммитов.Это, вероятно, непреднамеренное, но если это преднамеренное, не существует технического решения: это политическая проблема.