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