Можно ли восстановить исходники из data directory gitlab?

введите сюда описание изображения Сервер с gitlab не запускается. Бэкапов нет. Удалось достать с диска только папку /var/opt/gitlab В ней есть директория с репозиториями var/opt/gitlab/git-data/repositories.

Структура папок в конкретном репозитории на картинке.

Можно ли как то из этой директории получить исходники проектов?


Ответы (1 шт):

Автор решения: KoVadim

Так как там есть все необходимые файлы, похоже, что это исправный 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 ручками.

Также: в любом случае сделайте копию репозитория (или того, что от него осталось) и поместите в надежное место (например, на внешний диск).

→ Ссылка