git repo перезаписан старой версией git repo, игра окончена? - PullRequest
1 голос
/ 21 апреля 2011

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

EDIT

перезапись выполнялась с помощью ручного перетаскивания, команды терминала не вводились.

Я на маке.

У меня есть машина времени, и я могу восстановить мой старый новый репозиторий (если вы понимаете, что я имею в виду, моя голова тает), но могу ли я объединить их (с тех пор внесли изменения, просматривая сроки) или я должен просто восстановить Полное резервное копирование?

Ответы [ 3 ]

1 голос
/ 21 апреля 2011

хорошо, это будет громоздко, но ваши коммиты, вероятно, все еще будут там ...

run git fsck --full (может занять некоторое время) - в нем будут перечислены все висячие капли / деревья / коммиты. проверять каждый опасный коммит с помощью git log / git show / gitk. когда вы найдете главный коммит ветви, воссоздайте ветку с помощью git branch <branchname> <sha1 of commit> (вы должны запомнить старые имена веток)


, так как вы восстановили свое старое состояние хранилища, используя машину времени, и теперь ваш старый хранилище находится на вашем рабочем столе, самое простое, что вам нужно сделать, это добавить новый пульт и затем извлечь удаленные коммиты:

git remote add old-repo /path/to/your/desktop/old-dir/.git
# sorry, no clue what the actual path might be on mac systems (~/Desktop/…?)
git fetch old-repo

после этого у вас будут все ветки из вашего старого репозитория, доступные как old-repo/branchname. чтобы объединить их, просто введите команду git merge old-repo/branch. это просто базовое git fu для установки хранилища в качестве дополнительного пульта и объединения его изменений (никакой магии здесь не происходит, двигайтесь вперед)

1 голос
/ 21 апреля 2011

Windows? Linux?

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

Но да, если у вас нет резервных копий ... это ваша вина! =)

0 голосов
/ 09 марта 2012

Иногда, просто иногда тебе может везти.В Windows 7 откройте свойства папки и нажмите «Предыдущие версии».

Мне посчастливилось найти резервную копию старого iPhone с использованием этой техники, когда выглядело, как будто я потерял все !!

...