Happy My Life

日常とか技術とか

gitでRailsのプロジェクトを管理してみる その1

Railsを使用したプロジェクトを社内にgitサーバを構築して、みんなでcommitしようという、ありがちなシチュエーションでの使いかたをまとめてみた。 別に個人でプロジェクトを管理しててもいいんだけど。

今回はgitレポジトリのアクセスにはsshを使う(gitをつかってもいいんだけど) http(DAV)も使えるのだが、commitなどはsshと比べて時間がかかる(らしい)し、設定手順も少し煩雑になるので今回はパス。

gitレポジトリを初期化する。

user@mypc:$ cd ~/railsproj
user@mypc:$ git init

無視したいファイルを定義するため.gitignoreを書く。下記の定義は一例

user@mypc:$ cat .gitignore
#*#
*.*~
*~
*.#*
tags
log/*.log
tmp/**/*
.DS_Store
doc/api
doc/app
user@mypc:$

/tmpなどに .gitignoreファイルを入れておく(空ディレクトリが登録されず無視されるのを防ぐため)

user@mypc:$ touch tmp/.gitignore
user@mypc:$ touch log/.gitignore

gitレポジトリにファイルをコミットする。 コミットすると、コメント入力のためにエディタが開くので、そこに入力する。

user@mypc:$ git add .
user@mypc:$ git commit

gitサーバへ転送するための裸(bare)のgitレポジトリを作成する

user@mypc:$ git clone --bare . ~/railsproj.git

gitサーバ側は、あらかじめgitレポジトリを設置するディレクトリを作成しておく gitgrpグループのメンバだけがgitレポジトリにアクセス、更新できるように設定する

user@gitpc:$ sudo mkdir /git
user@gitpc:$ sudo groupadd gitgrp
user@gitpc:$ sudo chgrp -R gitgrp /git
user@gitpc:$ chmod 770 /git
user@gitpc:$ gpasswd -a user gitgrp
user@gitpc:$ chmod 2770 /git

scp(か何か)で,gitサーバに railsproj.gitをコピーする

user@mypc:$ scp -r ~/railsproj.git  user@gitpc:/git

これでgitサーバのgitレポジトリ設定が終了。

他のクライアントからレポジトリを取り出す方法は、また次回

2007/4/20変更

グループにユーザを追加する方法を変更 usermod -G gitgrp user で追加すると、userはgitgrp以外のグループから削除されてしまうので。