Carpe Diem

  Top > スポンサー広告> Git > ネットワーク越しでリポジトリの登録  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ネットワーク越しでリポジトリの登録

2012 - 07/17 [Tue] - 21:31

前回の補足のようなものです。Gitには複数のリポジトリURLを利用できます。

Gitで利用できるリポジトリURL
プロトコル 指定方法
rsync rsync://<ホスト名>/<Gitリポジトリのパス>
HTTP http://<ホスト名>[:ポート番号]/<Gitリポジトリのパス>
HTTPS https://<ホスト名>[:ポート番号]/<Gitリポジトリのパス>
git git://<ホスト名>[:ポート番号]/<Gitリポジトリのパス>
SSH ssh://[ユーザー名@]<ホスト名>[:ポート番号]/<Gitリポジトリのパス>
ローカルファイル <Gitリポジトリのパス>もしくはfile://<Gitリポジトリのパス>

であるので、ネットワーク越しの場合は

$ git clone ssh://user@example.com/home/user/share.git/


のように書けばいいです。またsvnとは違い git:// で指定する方法もあります。sshだと鍵が必要だし、かといってわざわざApacheでWebサーバを立てるのは面倒・・・という人向けなのでしょうか。


◆Gitサーバを使う
使うにはリポジトリ側で

$ sudo aptitude install git-daemon-run

デフォルトだとリポジトリの--base-pathが/var/cacheに設定されていたりするので編集します。base-pathはリポジトリの親フォルダを指定します。なので /home/user/share.git なら /home/user/ です。

$ sudo emacs -nw /etc/sv/git-daemon/run
exec chpst -ugitdaemon \
  "$(git --exec-path)"/git-daemon --verbose --reuseaddr \
    --base-path=/var/cache /var/cache/git

exec chpst -ugitdaemon \
  "$(git --exec-path)"/git-daemon --verbose --reuseaddr \
    --base-path=/home/user/ --export-all --enable=receive-pack


簡単に説明すると
--base-path
リポジトリがある場所を指定します。

--export-all
誰でも、どのリポジトリも git clone できるようにします。

--enable=receive-pack
誰でも、git push できるようにします。

--user=user
user ユーザーで daemon を動かします。



サービスの再起動はちょっと特殊。

$ sudo sv stop git-daemon
$ sudo sv start git-daemon

or
$ sudo sv restart git-daemon



◆確認

$ git clone git://example.com/share.git .

注意としてbase-pathが設定してあるので、ホスト名の後はすぐにリポジトリ名がきます。sshのように
$ git clone git://example.com/home/user/share.git .

とするとエラーになるので注意。多分base-pathを設定しない場合は後者でいいんだと思います。試してないですが。


ソース:
Gitを使いこなすための20のコマンド
git のリモートリポジトリを構築する
gitサーバーをubuntuに構築してgit://からアクセスできるようにする手順メモ

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。