2015-05-10 2 views
2

Я случайно удалил все внутренние файлы из интернета GitHub репо - каталог теперь пуст, но по-прежнему существует - PLUS репо был удален из локальной машины, аКак клонировать предыдущую версию репо на локальную машину?

Обычно клон GitHub будет использоваться, чтобы получить репо обратно на машине , git revert и т. д. для онлайн-версии, но это не будет работать по очевидным причинам.

Как вернуться к предыдущей версии проекта (одна фиксация за текущим) в этой ситуации?

, пожалуйста, помогите!

ответ

3

НЕ ПАНИКА! Есть many ways to undo commits and pushes in Git.

Сначала клонируйте хранилище. Он загрузит полную историю проекта.

Затем вы можете вернуть фиксацию, используя git revert HEAD. Это добавит новую фиксацию, чтобы отменить последнюю. Затем просто нажмите на это сообщение как обычно. Это простейшая вещь, но она оставляет плохую фиксацию в истории.

Другой вариант - отменить фиксацию. Это можно сделать, переместив главную ветку назад на один фиксатор. Перемещение веток вокруг произвольно выполняется с помощью git reset. git reset --hard HEAD^. HEAD^ - это фиксация перед текущим. --hard говорит, что он действует как проверка и делает ваш рабочий каталог совпадающим с HEAD^. У меня есть git reset --hard HEAD^ aliased to undo. Затем нажмите фиксацию, но вам нужно будет использовать git push --force, потому что вы не добавляете поверх существующей фиксации.

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

+1

кризис был предотвращен .... благодарю за ваш очень четкий и хорошо написанный ответ, я следовал указанным инструкциям и рад сказать, что у меня все еще есть младший Дев (едва) ... Отличная «супермена», благодаря Шверну – Mervodactyl

+0

@Mervodactyl Вы очень желанны! Я рад, что все получилось. Одна из замечательных особенностей управления версиями - это развитие, которое очень прощает глупые ошибки, особенно если вы отпустите идею о том, что история неизменна. – Schwern