(※gitosisなどの高度なgit管理は今回なし。あくまでも個人的にシンプルな管理で)
1.さくらのVPS上でやること
・gitをインストール
yumで直接インストールできないのでWebtaticリポジトリを追加、指定してインストール
$ rpm -ivh http://repo.webtatic.com/yum/centos/5/latest.rpm $ yum -y install --enablerepo=webtatic git
・gitで使うアカウント作成(今回はkasahi)とりあえずwheelグループに追加
$ useradd kasahi $ passwd kasahi $ usermod -G wheel kasahi $ id kasahi uid=500(kasahi) gid=500(kasahi) groups=500(kasahi),10(wheel)
・/var/gitをリポジトリのルートにする。
$ mkdir /var/git $ chmod 775 /var/git $ chown root:wheel /var/git $ cd /var/git $ mkdir demo.git $ chmod 775 demo.git $ chown root:wheel demo.git $ cd demo.git・gitをshare用にinit
$ git init --bare --shared Initialized empty shared Git repository in /var/git/demo.git/これで(空の)共用demo.gitリポジトリができた。
この共用demo.gitにmacからアクセスしてみる。
2.続いて、mac上でやること
・gitのインストール(macのportsから)
$ sudo port install git-core・git用のユーザ名とメールアドレスを設定
$ git config --global user.name "Your Name" $ git config --global user.email you@example.com
・適当な場所で、さくらVPSで作ったdemo.gitリポジトリをcloneしてみる
$ cd ~/tmp $ git clone ***.***.***.***:/var/git/demo.git demo-clone
・空のdemo.gitリポジトリにファイルを追加してみる
$ cd demo-clone $ touch README.txt $ git commit -am "initial checkin" [master (root-commit) c045b23] initial checkin 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 README.txt
・demo.gitリポジトリにpushしてみる。
$ git push ***.***.***.****:/var/git/demo.git master Counting objects: 3, done. Writing objects: 100% (3/3), 261 bytes, done. Total 3 (delta 0), reused 0 (delta 0) To 182.48.45.221:/var/git/demo.git * [new branch] master -> master
・状態などチェック
$ git log $ git status※gitのコマンドは別途勉強。
ここまでで、macからさくらVPS上に立てたgit共用リポジトリを使うことができた。
続いて、コマンドラインからだけではなくwebからもリポジトリの状態が見れるように、gitwebを導入する。
3.gitwebの導入
以下、さくらVPSで作業する。
・まずapacheをインストール
$ sudo yum -y install httpd・apacheを起動
$ sudo service httpd start
・gitwebをインストール
$ yum -y install --enablerepo=webtatic gitweb・gitweb用の設定ファイルを修正
/etc/httpd/conf.d/git.conf というファイルが出来てるので修正
Alias /git /var/www/git <Directory /var/www/git> Options +ExecCGI AddHandler cgi-script cgi DirectoryIndex gitweb.cgi AuthType Basic AuthName "Please enter your ID and password" AuthUserFile /var/www/git/.htpasswd require valid-user </Directory>
・一応basic認証をいれておく(==> htpasswdファイル生成(作成))※本当はIP制限もかけたほうが安全かも
$ vi /var/www/git/.htpasswd修正後、 apache を再起動。
$ sudo service httpd restart
次に /var/www/git/gitweb.cgi に git のリポジトリパスを設定する。
72 # absolute fs-path which will be prepended to the project path 73 #our $projectroot = "/pub/scm"; 74 #our $projectroot = "/var/lib/git"; 75 our $projectroot = "/var/git"; # <---- /var/git を追加
apacheに/var/gitを読み込む権限があるか確認
$ id apache uid=48(apache) gid=48(apache) 所属グループ=48(apache)ないので追加
$ sudo usermod -G wheel apache
あとは、***.***.***.***/gitにアクセスすれば、web経由でリポジトリが確認できる。
便利。