ローカルマシンのディレクトリに.git
を設定しました。次に実行します:
mkdir a cd a git init gitデーモン
リポジトリをa
に複製しようとすると、次のエラーが発生します。
mkdir b cd b git clone git://127.0.0.1 /b/127.0.0.1/.git/ で初期化された空のGitリポジトリ致命的:リモートエンドが予期せずハングアップしました
Gitプロトコルを介してリポジトリのクローンを作成するにはどうすればよいですか?
リポジトリをエクスポートする可能性があることをgit-daemon
に通知する必要があります。
$ git init --bare/tmp/my-repo.git /tmp/my-repo.git/ $gitデーモン--verbose-で初期化された空のGitリポジトリ-base-path =/tmp --export-all /tmp/my-repo.git& $ git clone git:// `hostname`/my-repo.git /tmp/my-repo/.git / で初期化された空のGitリポジトリ警告:空のリポジトリのクローンを作成したようです。
はるかに良い方法は、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
することを忘れないでください。これで、/pub/scm
の下にあるすべてのgitリポジトリを、質問した人なら誰でも利用できるようになります。
git-daemon-export-ok
という空のファイルをリポジトリに配置するか、git daemon
オプションを使用して--export-all
を開始する必要があります。
Git-daemonからの引用 manページ :
ディレクトリにマジックファイル「git-daemon-export-ok」があることを確認し、この方法でエクスポート用に明示的にマークされていないgitディレクトリのエクスポートを拒否します(--export-allパラメータが指定されている場合を除く) )。いくつかのディレクトリパスをgitデーモン引数として渡すと、オファーをそれらで構成されるホワイトリストにさらに制限できます。