Одной из возможностей может быть локальное репо где-нибудь, которое не выполнило бы git fetch --prune
, которое все равно отслеживало бы последний известный совет.
Но если это не удастся, так как ветка была удалена наНа сервере "около недели назад", истечение срока действия по умолчанию для объектов, на которые нет ссылок, не прошло, поэтому auto-gc не должен был его очищать.В этом репозитории сделайте
git fsck --lost-found --connectivity-only
и git show
или, например, git log --online --graph --decorate master..$id
идентификаторы в каталоге lost-found/commits
, чтобы посмотреть, хорошо ли они выглядят.В любом случае вы можете создать для них новую ветвь, если коммит все еще находится в репо, его история все еще там.
Если вы не хотите работать на живом сервере, вы можете просто rsync илиtar или что-то еще из репо, все это, куда вы хотите, а затем говорите на досуге.Возможно, вам придется удалить любые беспризорные find -name \*.lock
файлы, если кто-то нажимал во время копирования, или поиграть с конфигами, если есть какие-то жестко настроенные пути, выходящие за пределы самого репо, но это необычно.