27

.gitローカル マシンのディレクトリにセットアップしました。次に実行します:

mkdir a
CDを
git初期化
git デーモン

でリポジトリのクローンを作成しようとするとa、次のエラーが発生します。

mkdir b
CDB
git クローン git://127.0.0.1
/b/127.0.0.1/.git/ で初期化された空の Git リポジトリ
致命的: リモート エンドが予期せず電話を切りました

git プロトコルを介してリポジトリをクローンするにはどうすればよいですか?

4

2 に答える 2

48

git-daemonリポジトリをエクスポートする可能性があることを知らせる必要があります。

$ git init --bare /tmp/my-repo.git
/tmp/my-repo.git/ で空の Git リポジトリを初期化しました

$ git デーモン --verbose --base-path=/tmp --export-all /tmp/my-repo.git &

$ git clone git://`ホスト名`/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。これで、その下にあるすべての git リポジトリが、/pub/scm要求した人なら誰でも利用できるようになります。

于 2010-03-29T15:28:51.863 に答える
14

呼び出された空のファイルgit-daemon-export-okをリポジトリに配置するかgit daemon--export-allオプションから開始する必要があります。

git-daemonのmanページからの引用:

ディレクトリにマジックファイル「git-daemon-export-ok」があることを確認し、この方法でエクスポート用に明示的にマークされていないgitディレクトリのエクスポートを拒否します(--export-allパラメータが指定されている場合を除く) )。いくつかのディレクトリパスをgitdaemon引数として渡すと、オファーをそれらで構成されるホワイトリストにさらに制限できます。

于 2010-03-29T15:38:46.920 に答える