gitoliteでリポジトリの追加してWEBサーバーに反映

gitoliteでリポジトリの追加してWEBサーバーに反映させたい

まず、リポジトリの追加

gitolite-adminリポジトリをgit cloneして
vim gitolite-admin/conf/gitolite.conf

repo (追加するリポジトリ)
RW+ = @all

を追記
@allだと全ユーザー、読み書きが可能になります

git commit -am ‘add new reposiry’
git push
でgitoliteサーバーにリポジトリが作成されます

WEBサーバーにあがってるソースを公開フォルダからごっそりローカルに落とします
scp -r user@server:/var/www/(git管理したいフォルダ) (好きなフォルダ名: src)

cd src
git init
git commit -am ‘prepare’

リモートリポジトリを登録します
git remote add origin ssh://user@gitserver/(追加するリポジトリ).git
git push origin master
でサーバーのリポジトリにソースが上がります

gitoliteのフォルダは、WEBの公開フォルダではないので、
push されたらWEBの公開フォルダへ反映するようフックスクリプトを用意します。

gitoliteサーバーへログインして
su – (gitlite用ユーザー)
cd ~/repositories/(追加したリポジトリ).git/hooks

vim post-receive (なければつくります)

#!/bin/sh
GIT_WORK_TREE=(WEBの公開フォルダ) git checkout -f

を保存
実行権限をつけます
chmod a+x post-receive

ローカルにある今回つくったリポジトリで何か修正して
git commit -am ‘commit’
git push origin master
でWEBの公開フォルダにも反映されれば成功です

が、いくつかハマりました。

1.WEBの公開フォルダ上の権限が足りない
とりあえず
chmod o+w .
chmod o+w *
chmod o+x .
chmod o+x *
とかして応急処置

2. git pushするとWEBの公開フォルダ上の権限が勝手に400とか変わる
gitoliteサーバーへログイン、
su – (gitlite用ユーザー)
vim .gitlite.rc

UMASK => 0077,

UMASK => 0022,
に変更

とりあえずできました

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください