Locked History Actions

git/server

gitサーバのセットアップ

ここではgitプロトコルでのみアクセスすることを考える。対象はCentOS 6.5。

git,git-daemonのインストールと設定

yum install git git-daemon

git-daemonはxinetdから起動されるようになっている。/etc/xinetd.d/gitを変更。

# default: off
# description: The git damon allows git repositories to be exported using \
#       the git:// protocol.

service git
{
        disable         = yes
        socket_type     = stream
        wait            = no
        user            = nobody
        server          = /usr/libexec/git-core/git-daemon
        server_args     = --base-path=/var/lib/git --export-all --user-path=public_git --syslog --inetd --verbose
        log_on_failure  += USERID
}

disable = noとして起動できるようにする。 「--base-path=/var/lib/git」を削除する。これがあると、このディレクトリ以外のリポジトリにはアクセスできず、その場合clone時に「The remote end hung up unexpectedly.」という訳のわからないエラーが出る。 「--enable=receive-pack」を追加する。これが無いとpushできないと言われてしまう。

service xinetd restart

リポジトリの設置とclone

/var/gitディレクトリを作成し、そこに以前作成したリポジトリを置く。/var/git/abc.gitとする。

これをcloneしてみる。

git clone git://localhost/var/git/abc.git