Gitで遊ぶ

サーバー運用がかなり厳しいので寄付をしてくれる人がいたらこちら
メインPCもボロボロになってきたので、ついにほしいものリスト公開

ということで、Gitをサーバに入れて遊んでみます。
設定とかはそのうち。。。

https://git.momo-i.org/ と git://git.momo-i.org/ がこっそりと使えますよ。
両方とも設定でpushはできませんがね!
そして殴り書き(後でまとめる)

必要なものを入れる

yum install git git-daemon git-svn gitk git-osis git-web perl-Git

リポジトリ用のディレクトリとgitユーザ作成

useradd -d /usr/local/git git

自分のアカウントでsshの鍵作成と読込

ssh-keygen -t dsa -b 1024 -C ' hoge@example.com'

gitになって

su - git
gitosis-init < ~user/.ssh/id_dsa.pub

(公開鍵読めなかったらrootなりでgitのディレクトリに公開鍵コピーすればおk)
適当なディレクトリに移動してsshでアクセスさせる設定をふがふが

git clone git@git.example.com:gitosis-admin.git

ファイルとディレクトリが出来上がるので以後はこれでアクセス管理とかの設定をする
gitosis.confとkeydir
gitosis.confの中身は[group (グループ名)]で

[gitosis]
 [group gitosis-admin]
 members = user@example.com
 writable = gitosis-admin
 [group group1]
 members = user@example.com
 writable = proj1 proj2 proj3

ユーザを追加する場合はkeydirにユーザ名.pubの公開鍵を置いてpushする

git commit -a -m 'test'
git push
push前にこれが必要かも
git config --global user.email " user@example.com"
git config --global user.name "User"

プロジェクト作る

cd /path/to/proj
git init
touch hogehoge
git add .
git commit -m 'hogehoge'
git remote add origin git@git.example.com:hogehoge.git
git push origin master:refs/heads/master

ついでに後でRedmineと連携させるのにこれもやっとく

git remote add local  git@git.example.com:hogehoge.git
git push local master

これを置いておくと良い

touch /usr/local/git/repositories/hogehoge.git/git-daemon-export-ok

hooksのpost-updateも有効にしておく

cd /usr/local/git/repositories/hogehoge.git/hooks
cp post-update.sample post-update

gitwebを設定
/etc/xinetd.d/git

disable = no
user = git
server_args = --base-path=/usr/local/git/repositories --syslog --inetd

tcp_wrapperも設定しておく
vi /etc/hosts.allow

git-daemon: all

gitweb.confを編集

our $projectroot = "/usr/local/git/repositories";
our $home_link_str = "ももーい鯖のGit";
our $site_name = "ももーい鯖のGit";
our $site_header = "header.html";
our $home_text = "main.html";
our $site_footer = "footer.html";
our @stylesheets = ("static/gitweb.css", "static/highlight.css");
our $logo_url = "http://www.momo-i.org/";
our $logo_label = "momo-i";
our $projects_list = "/usr/local/git/list.txt";
our @git_base_url_list = qw(git://git.momo-i.org http://git.momo-i.org/git);
$feature{'pathinfo'}{'default'} = [1];
$feature{'avatar'}{'default'} = ['gravatar'];
$feature{'highlight'}{'default'} = [1];

/usr/local/git/list.txtに公開したいレポジトリ名(スペース)作者を入れる
hogehoge.git user/usr/local/git/repositories/hogehoge.git/descriptionにgitwebで表示させたい説明を入れておく(日本語可)
gitweb用のApache設定(抜粋)

Serveradmin info@example.com
ServerName git.example.com
DocumentRoot /var/www/git
DirectoryIndex gitweb.cgi

pathinfoように.htaccessを設定
/var/www/git/.htaccess

RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^.* /gitweb.cgi/$0 [L,PT]

httpで取ってこれるようにディレクトリ作成+α

mkdir /var/www/git/git
vi /var/www/git/git/.htaccess
RewriteEngine Off
ln -s /usr/local/git/repositories/hogehoge.git /var/www/git/git/hogehoge.git

gitwebのハイライト用に適当なファイルを作ってcssだけもらう

echo ''" > hoge.php
highlight -s スタイル名 hoge.php > /dev/null

利用可能なスタイル名は以下のコマンドで

highlight -w

何か忘れてる気もしないでもないですが、これで多分おk

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
CAPTCHA
また変更しました
Fill in the blank.