Доступ к файлам репозитория с сервера 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
,