Click here to load reader
Upload
taku-amano
View
1.291
Download
2
Embed Size (px)
Citation preview
Git で管理されたあるディレクトリの話
天野卓 @ ToI 企画
自己紹介
佐久市で Web アプリケーションを開発しています。
LAMP
Movable Type のプラグインをフリーソフトウェアと
して配布しています。
http://tec.toi-planning.net
GitHub でも活動しています。
http://github.com/usualoma
この発表に関する資料
以下の URL からダウンロードできます。
http://www.slideshare.net/tag/nseg
あるところに、
バージョン管理の対象にしたい
ディレクトリがありました。
home`-- project
しかしそのディレクトリにあるファイルは
VCS を使うことのできない
デザイナーも編集を行なうのでした。
home`-- project `-- css `-- style.css
そんな状況で
Git が役に立ったという話をします。
構成
@ デザイナー環境
定期的かつ強制的に更新を取り込む。
% cat force_commit_files#!/bin/sh
git=`/usr/bin/which git`export GIT_DIR=/home/project/.git
$git add `/usr/bin/dirname $GIT_DIR`$git commit -m "`/bin/date`"
問題点
問題 1
VCS を使わないユーザーに管理用のファイルを変更され
れてしまう!
(/home/project/css/.svn とか )
問題 2
無駄なコミットが大量に追加されてしまう !
( 変更途中の状態で後々まで残す必要のないもの )
問題 1 の解決
/home/project/.git を $GIT_DIR にする。
Git を使わないユーザーには /home/project/css
だけを公開する。
(FTP でルートディレクトリを制限 )
/home/project <- $GIT_DIR/home/project/css <- FTPのルートディレクトリ
なぜ問題 1 が解決できたか?
Git の情報は /home/project/.git の下に保存さ
れるので、 /home/project/css がルートディレク
トリになっていれば触ることができない。
問題 2 の解決
定期的な強制コミットはローカルブランチに対して
行う。
必要な場合にメインブランチに取り込み、リモートリ
ポジトリに反映させる。
なぜ問題 2 が解決できたか?
リモートリポジトリへ反映させなくてもローカル環境
だけで完結した形で、またローカル環境独自のルー
ルで、バージョン管理を行うことができる。
Git 素敵です。
ご静聴ありがとうございました