Доступ к файлам репозитория с сервера Git

Мне нужно получить доступ к некоторым файлам, хранящимся в репозитории Git, но я не вижу, где они хранятся в папке репозитория.

Существует ли особый способ доступа к различным файлам, загружаемым с клиентов?

3 ответа

Решение

Если это пустой репозиторий, вы не найдете эти файлы в repo.git папка.
Смотрите " все о" пустых "репо": голое репо не имеет рабочего дерева и используется для отправки на него (поскольку нет рабочего дерева, которое можно было бы синхронизировать с обновленной веткой)

Самый простой способ увидеть эти файлы - это клонировать голое хранилище:

git clone /path/to/repo.git /path/to/repo

Я знаю только хакерский способ увидеть список файлов в пустом хранилище без клонирования:

GIT_DIR=/path/to/bare.git git log --pretty=format: --name-only --diff-filter=A

Скорее всего, вы хотите отсортировать этот вывод и исключить пустые строки:

GIT_DIR=/path/to/bare.git git log --pretty=format: --name-only --diff-filter=A | sort | grep .

Просмотр содержимого файла довольно чистый, хотя:

GIT_DIR=/path/to/bare.git git show HEAD:path/to/file

Если вы хотите получить определенные файлы из чистого репозитория, но не весь репозиторий, вы можете перенаправить вывод git show в файл.

Btw, GIT_DIR=... git cmd эквивалентно git --git-dir=... cmd

Git-репозитории часто хранятся на сервере в виде чистого репозитория. Это эффективно содержание нормального .git каталог, и не включает извлеченную рабочую копию.

Для доступа к файлам, хранящимся в таком хранилище, я рекомендую клонировать хранилище. Если вы хотите сделать это с сервера, вы можете сделать что-то вроде git clone file /path/to/bare/repository /path/to/clone,

Другие вопросы по тегам