Я настроил .git
в каталоге на моей локальной машине. Я затем работаю:
mkdir a cd a git init git daemon
Когда я пытаюсь клонировать репозиторий в a
, Я получаю следующую ошибку:
mkdir b cd b git clone git://127.0.0.1 Initialized empty Git repository in /b/127.0.0.1/.git/ fatal: The remote end hung up unexpectedly
Как я могу клонировать свой репозиторий по протоколу мерзавца?
Вам нужно сообщить git-daemon
, что он может экспортировать ваш репозиторий:
$ git init --bare /tmp/my-repo.git Initialized empty Git repository in /tmp/my-repo.git/ $ git daemon --verbose --base-path=/tmp --export-all /tmp/my-repo.git & $ git clone git://`hostname`/my-repo.git Initialized empty Git repository in /tmp/my-repo/.git/ warning: You appear to have cloned an empty repository.
Намного лучше запустить его из xinetd
. Создайте и настройте /etc/xinetd.d/git
в соответствии со строками
# description: The git server offers access to git repositories
service git
{
disable = no
type = UNLISTED
port = 9418
socket_type = stream
wait = no
user = nobody
server = /usr/local/bin/git
server_args = daemon --inetd --export-all --base-path=/pub/scm
log_on_failure += USERID
}
. Не забудьте sudo killall -HUP xinetd
. Теперь все репозитории git ниже / pub / scm
будут доступны любому, кто спросит.
Вы должны либо поместить пустой файл с именем git-daemon- export-ok
в репозиторий или запустите демон git
с параметром - export-all
.
Цитата из справочной страницы git-daemon :
Он проверяет, что в каталоге есть волшебный файл "git-daemon-export-ok", и {{1} } он откажется экспортировать любой каталог git , который явно не был помечен для экспорта таким образом (если не указан параметр --export-all). Если вы передаете некоторые пути к каталогам в качестве аргументов демона git, вы можете дополнительно ограничить предложения белым списком, состоящим из них.