リポジトリを置くサーバーにて、webdavを使い「https」経由でGitリポジトリを取得ができる。
1.レポジトリのパーミッションを、Apacheで読み書き可能にする ※リポジトリは、すでに作成済とする。
chown -R apache apache /var/git/プロジェクト名
2.DAVを有効にする 「/etc/httpd/conf/httpd.conf」がApache設定ファイルとする。 下記がなければ追加
LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so
3.「Git」リポジトリをVirtualHostに設定する
<VirtualHost git.example.com:80> ServerAdmin morimoto@example.com DocumentRoot /var/git ←リポジトリ群 ServerName git.example.com ErrorLog logs/git.example.com/error_log CustomLog logs/git.example.com/access_log combined <Directory /var/git/プロジェクト名/> Options All AllowOverride All </Directory> </VirtualHost>
4.「https(SSL)」経由でBASIC認証を用いてリポジトリを開放する
<Location /プロジェクト名> DAV on #webDAVを有効化 SSLRequireSSL #SSL経由設定 AuthType Basic #BASIC認証を利用 AuthName "Git" #BASIC認証ユーザー名 AuthUserFile /var/git/passwd.git #BASIC認証パスワードファイル Require valid-user #複数ユーザーのID:PW組み合わせ可 </Location>
5.BASIC認証パスワードファイル作成
cd /var/git htpasswd -c passwd.git Git #「Git」はBASIC認証ユーザー名 New password: #BASIC認証パスワード入力。入力後2回目の確認入力
6.Apacheの再起動
/etc/rc.d/init.d/httpd restart
7.リポジトリ公開設定
cd /var/git/プロジェクト名 git --bare update-server-info
リポジトリサーバー側の設定完了
8.クライアントでclone(チェックアウト) ※今回は、windowsで「Cygwin」を利用
ソースを展開するディレクトリを作成し、cloneする
mkdir /home/homepage/git_work GIT_SSL_NO_VERIFY=1 git clone https://BASIC認証ユーザー名:パスワード@サーバー名/プロジェクト名
「GIT_SSL_NO_VERIFY=1」は、オレオレSSL認証の場合に入力が必要な場合あり
※「TortoiseGit」などでも、cloneは可能。
参考 Git のリモートリポジトリから HTTP で pull するためのメモ http://d.hatena.ne.jp/aki-yam/20091203/1259809797 GitリポジトリをWebDAV(+https)経由で公開する http://d.hatena.ne.jp/yamkazu-tech/20090504/1241452184 gitレポジトリをhttpで公開する http://www.fraction.jp/log/archives/2008/05/15/setup-git-server-over-http