Если вы не взломали данные в каталоге .git
, маловероятно, что вы что-то потеряли. У вас может быть ужасный беспорядок, который нужно вычистить, и может потребоваться много времени, чтобы разобраться, что вы сделали и где это, но вы, вероятно, ничего не потеряли.
Это хорошая новость.
Плохая новость в том, что кому-то очень трудно будет вам сильно помочь.
Вероятно, вам потребуется идентифицировать все ветви и проследить обратные коммиты на каждой. Вам нужно будет решить, были ли все эти операции git commit -a
хорошими. Это звучит маловероятно - поэтому вам, возможно, придется выполнять слияния должным образом, работая от одного до последнего коммита в каждой ветви.
Вам также нужно решить, что вы действительно пытались сделать.
Звучит так, как будто вы хотели объединить некоторое количество ветвей - назовите их BranchA, BranchB и BranchC - в основной ветви master. Но не ясно, что вы пытались это сделать.
Учитывая, что все в порядке, я рекомендую создать еще одну ветку, которую мы можем назвать «Fixup». Создайте это из головы главной ветки. Затем объедините соответствующую версию каждого из BranchA, BranchB и BranchC в ветку Fixup. На каждом этапе проверяйте, действительно ли код работает правильно - проходя тестовый набор и т. Д. Проверяйте каждое слияние отдельно в ветви Fixup.
Когда вы убедитесь, что ветка Fixup верна, переключитесь обратно на главную ветвь и объедините ветку Fixup с главной.
Чарльз Бэйли делает очень разумное предложение (в комментарии к вопросу): прежде чем делать что-либо еще, сделайте резервную копию того, что у вас есть, именно так, как оно есть в настоящее время. Только после этого приступайте к любым операциям очистки. И его предложение получить интерактивную помощь также разумно.