git 20100313
TRANSCRIPT
![Page 1: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/1.jpg)
とりあえず Git~ Git 入門前夜~
天野卓 @ ToI 企画
![Page 2: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/2.jpg)
自己紹介
佐久市で Web アプリケーションを開発しています。
LAMP
Movable Type のプラグインをフリーソフトウェアと
して配布しています。
http://tec.toi-planning.net
GitHub でも活動しています。
http://github.com/usualoma
![Page 3: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/3.jpg)
この発表に関する資料
以下の URL からダウンロードできます。
http://www.slideshare.net/tag/nseg
![Page 4: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/4.jpg)
もくじ
バージョン管理システムとは
Git に至るまでの歴史
Git の特徴
Git のどこが Life Changing か
![Page 5: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/5.jpg)
バージョン管理システムとは
![Page 6: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/6.jpg)
過去のファイルを保存する
![Page 7: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/7.jpg)
過去のディレクトリの状態を保存する
![Page 8: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/8.jpg)
過去のディレクトリの状態を保存する
![Page 9: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/9.jpg)
バージョンにメタ情報を付ける
![Page 10: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/10.jpg)
保存したディレクトリ間の差分を知る
![Page 11: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/11.jpg)
編集内容にメタ情報を付ける
![Page 12: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/12.jpg)
編集内容をマージする
![Page 13: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/13.jpg)
Git に至るまでの歴史
![Page 14: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/14.jpg)
年表
1982: RCS
1990: CVS
2001: Subversion
2003: SVK
2005: Git, Mercurial, Bazaar(2004)
![Page 15: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/15.jpg)
RCS
ファイル単位でバージョンを管理
vi の代りに ci と打つと管理が始まる
![Page 16: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/16.jpg)
RCS
![Page 17: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/17.jpg)
CVS
複数の RCS をまとめて管理
ある時点の状態にタグを付けることが可能
サーバー / クライアント形式でネットワーク越しの
共有が可能
![Page 18: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/18.jpg)
CVS
![Page 19: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/19.jpg)
Subversion
高性能な CVS
コミットがアトミック
ディレクトリの移動や削除をサポート
![Page 20: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/20.jpg)
Subversion
![Page 21: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/21.jpg)
SVK
Subversion や CSV を分散型のように使うための
ツール
SVK 単体でも利用可能
![Page 22: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/22.jpg)
SVK
![Page 23: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/23.jpg)
Git
Git - Fast Version Control System
Linus Torvalds が Linux のソースコードを管理する
ことをターゲットにして開発
Linux のカーネル
ソースコードの規模が大きい
更新が頻繁に発生する
![Page 24: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/24.jpg)
Git
![Page 25: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/25.jpg)
Git の特徴
分散型をサポート
差分ではなくてスナップショット
その他
![Page 26: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/26.jpg)
分散型とは
どのマシンもサーバーでありクライアントでありうる
リソースはそれぞれのマシンが完全な形で持つ
1つのマシンに障害があった場合も大丈夫
リソースが手元にあるため高速に動作
![Page 27: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/27.jpg)
集中型
![Page 28: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/28.jpg)
分散型
![Page 29: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/29.jpg)
分散型 ( 集中型っぽく )
![Page 30: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/30.jpg)
分散型 ( 別の使い方 )
![Page 31: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/31.jpg)
差分ではなくてスナップショットとは
差分 ( 履歴 ) は保存しない
コミット時点のスナップショットを取る
![Page 32: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/32.jpg)
差分を記録
![Page 33: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/33.jpg)
スナップショットを記録
![Page 34: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/34.jpg)
スナップショットを記録
![Page 35: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/35.jpg)
Git のどこが Life Changing か
Git - Fast Version Control System
準備の手間がかからない
プログラムの応答速度が速い
後から柔軟に修正できる
![Page 36: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/36.jpg)
準備の手間がかからない
「 git init; git add .; git commit 」 するだけ
他の場所にリポジトリを用意する必要がない
![Page 37: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/37.jpg)
プログラムの応答速度が速い (1)
ネットワークの遅延がないため応答が速い
変更履歴の表示 (svn log, git log)
A: 9秒 , B: 1秒 , Git 0.1秒以下
差分の表示 (svn diff, git diff)
A: 32秒 , B: 3秒 , Git 0.1秒以下
ブランチの移動 (svn switch, git checkout)
A: 10秒 , B: 2秒 , Git 0.1秒以下
A: svn co http://synergy2.svn.sourceforge.net/svnroot/synergy2/trunk
B: svn co http://svn.sourceforge.jp/svnroot/ttssh2/trunk
Git:git svn clone -T=trunk http://svn.sourceforge.jp/svnroot/ttssh2/
![Page 38: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/38.jpg)
プログラムの応答速度が速い (2)
一瞬で ( ローカル )ブランチが作成される
リモートサーバーへアクセスする必要がないため
ファイルをコピーする必要がないため
![Page 39: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/39.jpg)
後から柔軟に修正できる (1)
ブランチのマージが簡単
マージアルゴリズムも賢い ( らしい )
![Page 40: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/40.jpg)
後から柔軟に修正できる (2)
commit の修正が簡単にできる
![Page 41: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/41.jpg)
後から柔軟に修正できる (2)
commit の修正が簡単にできる
![Page 42: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/42.jpg)
Git のどこが Life Changing か
Git - Fast Version Control System
準備の手間がかからない
プログラムの応答速度が速い
後から柔軟に修正できる
とりあえず Git しておこう!
![Page 43: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/43.jpg)
まとめ
Git は簡単に始められます
Git は快適です
Git は勉強にもなります
![Page 44: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/44.jpg)
参考 URL
http://git-scm.com/
http://progit.org/book/ja/
http://www.ep.sci.hokudai.ac.jp/~epnetfan/za
gaku/2009/0925/pub/
http://ja.wikipedia.org/wiki/Git
http://en.wikipedia.org/wiki/Git_(software)
![Page 45: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/45.jpg)
参考書籍
「入門 Git 」 濱野 純 (Junio C Hamano)
![Page 46: Git 20100313](https://reader033.vdocuments.net/reader033/viewer/2022052907/558ff5b41a28abcd088b4588/html5/thumbnails/46.jpg)
ご静聴ありがとうございました。