Можно ли восстановить исходники из data directory gitlab?
Сервер с gitlab не запускается. Бэкапов нет.
Удалось достать с диска только папку /var/opt/gitlab
В ней есть директория с репозиториями var/opt/gitlab/git-data/repositories.
Структура папок в конкретном репозитории на картинке.
Можно ли как то из этой директории получить исходники проектов?
Ответы (1 шт):
Так как там есть все необходимые файлы, похоже, что это исправный bare репозиторий (то есть, репозиторий без рабочего каталога, обычное дело на "сервере"). Но можно как всегда это конвертнуть в "нормальный вид".
найдено здесь http://ibrahimsawalha.blogspot.com/2017/07/convert-bare-git-repository-into-normal.html и адаптировано.
- создайте каталог
.git - переместите туда все эти файлы и папки (
config,description,HEAD,objectsи другие). - запустите
git config --local --bool core.bare falseсобственно для конвертации. - запустите
git reset --hardили ручками сделайте checkout для нужных веток.
странно, я там не вижу каталога branches, где хранятся ветки. Но если что то пойдет не так - можно будет создать.
ВНИМАНИЕ: это как раз тот случай, когда лучше не запускать никакие GUI утилиты до полного восстановления репозитория. Так как не видно каталога branches, для этих утилит может быть выглядеть как репозиторий с удаленными ветками и они могут радостно предложить Вам "почистит мусор" (у меня так было). Также не запускайте git gc ручками.
Также: в любом случае сделайте копию репозитория (или того, что от него осталось) и поместите в надежное место (например, на внешний диск).