2016-07-28 2 views
2

Я создал репозиторий git на BitBucket, чтобы отслеживать мои скрипты. У меня только очень ограниченный опыт работы с git. Я использую комбинацию Linux и Windows, но я добавляю файлы в репозиторий, используя оболочку git bash в Windows, которая имеет диск, сопоставленный с общим ресурсом Linux.Git удалил мои файлы. Можно ли их восстановить?

Я добавил файлы в течение последних нескольких дней, но по одному из моих коммитов я ввел неправильный комментарий. Я хотел исправить это и googled для решения. Предложение, которое я нашел, состояло в том, чтобы использовать rebase. Я пробовал это, но это было неудачно, поэтому я решил просто жить с неправильным комментарием.

После этого я создал еще два скрипта, которые затем я хотел добавить в репозиторий с помощью 'git add'.

Когда я попытался их совершить, у меня появилось сообщение «В настоящее время вы редактируете фиксацию при перезагрузке ветви« master »на« 3ac74cb ». После этого сообщения был список файлов, а затем еще одна строка с предложениями, как что делать. К сожалению, все это теперь вышло из буферного терминала, поэтому я не могу отследить, что такое сообщение, но я в основном следил за сообщениями.

Одно из сообщений также предположило, что я делаю pull - это было связано с тем, что я внес изменения в текстовый файл, который я редактировал в BitBucket. Поэтому я тоже сделал потянуть.

У меня в основном сделано тянуть, а затем совершить повтор, а затем нажать. Ничто из этого, похоже, не сработало, поэтому я сделал еще несколько поисковых запросов, чтобы избавиться от сообщения о пересылке. Основываясь на ответе, я обнаружил, что сделал «git rebase -bort».

После этого два сценария, которые я пытался добавить, исчезли.

Могу ли я вернуть свои файлы откуда-нибудь или они просто удалены? Как я могу избежать этого, потому что я не могу позволить себе потерять работу вроде этого. Весь смысл использования git - не потерять работу.

Если вам нужна дополнительная информация, чтобы попытаться понять этот беспорядок, пожалуйста, просто спросите. Я бы очень признателен за любую помощь.

+0

В качестве первого шага клонируйте удаленный репозиторий (тот, который находится на битбакете), в новое место и получите копию содержимого, которое вы уже нажали. Я считаю, что предпринятые вами шаги ничего не удаляли, но я дам кому-то больше опыта, чтобы помочь вам. – Dror

ответ

2

Похоже, что вы были в середине операции rebase при создании новых файлов в рабочем каталоге. К сожалению, использование git rebase --abort сбрасывает HEAD обратно туда, где было, когда началась операция rebase. Если git status не показывает никаких файлов без следа, я боюсь, что ваши файлы могут быть потеряны.

git rebase - очень полезная команда при правильном использовании, но при неправильном использовании она также может вызывать большие проблемы.

Для дальнейшего использования вы можете изменить сообщение фиксации для вашего последнего фиксации с использованием git commit -m <message> --amend. Это должно помешать вам столкнуться с проблемой по той же причине в будущем.

Надеюсь, это поможет.

+0

Большое спасибо за ваш ответ. Я прочитал документацию по rebase, и я не мудрее. Я не знаю, какова его цель. Почему он удаляет файлы? Это звучит не очень разумно, особенно без предупреждения. Он предупреждает вас о смерти. – jss

+0

'rebase' позволяет вам редактировать историю фиксации. Нежелательные коммиты могут быть удалены, коммиты могут быть объединены, а сообщения изменены. Когда вы отменили rebase, git сделал все возможное, чтобы вернуть вас туда, где вы были, когда вы начали. Хорошей привычкой является использование 'git status' перед любой операцией. Это даст вам знать заранее, если ваше слияние, перезагрузка или любые файлы имеют изменения, которых вы не ожидаете. Простите, что у вас был плохой опыт, но я настоятельно рекомендую вам придерживаться git, это действительно отличный инструмент. – anierzad

+0

Большое спасибо. Вы были очень полезны :-) Я сердитый, но я дам ему еще один ... – jss

Смежные вопросы