Git で管理された
あるディレクトリの話


  天野卓 @ ToI 企画
自己紹介
佐久市で Web アプリケーションを開発しています。
  LAMP
Movable Type のプラグインをフリーソフトウェアと
して配布しています。
http://tec.toi-planning.net
GitHub でも活動して...
この発表に関する資料
以下の 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/.g...
問題点
問題 1
 VCS を使わないユーザーに管理用のファイルを変更され
 れてしまう!
 (/home/project/css/.svn とか )


問題 2
 無駄なコミットが大量に追加されてしまう !
 ( 変更途中の状態で後々まで残...
問題 1 の解決
/home/project/.git を $GIT_DIR にする。
Git を使わないユーザーには /home/project/css
だけを公開する。
(FTP でルートディレクトリを制限 )

/home/project...
なぜ問題 1 が解決できたか?
Git の情報は /home/project/.git の下に保存さ
れるので、 /home/project/css がルートディレク
トリになっていれば触ることができない。
問題 2 の解決
定期的な強制コミットはローカルブランチに対して
行う。
必要な場合にメインブランチに取り込み、リモートリ
ポジトリに反映させる。
なぜ問題 2 が解決できたか?
リモートリポジトリへ反映させなくてもローカル環境
だけで完結した形で、またローカル環境独自のルー
ルで、バージョン管理を行うことができる。
Git 素敵です。
ご静聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

Git 20100724

1,530 views
1,457 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,530
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Git 20100724

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

×