Git 20100313

2,120 views
2,068 views

Published on

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

No Downloads
Views
Total views
2,120
On SlideShare
0
From Embeds
0
Number of Embeds
58
Actions
Shares
0
Downloads
17
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Git 20100313

  1. 1. とりあえず Git ~ 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. もくじ バージョン管理システムとは Git に至るまでの歴史 Git の特徴 Git のどこが Life Changing か
  5. 5. バージョン管理システムとは
  6. 6. 過去のファイルを保存する
  7. 7. 過去のディレクトリの状態を保存する
  8. 8. 過去のディレクトリの状態を保存する
  9. 9. バージョンにメタ情報を付ける
  10. 10. 保存したディレクトリ間の差分を知る
  11. 11. 編集内容にメタ情報を付ける
  12. 12. 編集内容をマージする
  13. 13. Git に至るまでの歴史
  14. 14. 年表 1982: RCS 1990: CVS 2001: Subversion 2003: SVK 2005: Git, Mercurial, Bazaar(2004)
  15. 15. RCS ファイル単位でバージョンを管理 vi の代りに ci と打つと管理が始まる
  16. 16. RCS
  17. 17. CVS 複数の RCS をまとめて管理 ある時点の状態にタグを付けることが可能 サーバー / クライアント形式でネットワーク越しの 共有が可能
  18. 18. CVS
  19. 19. Subversion 高性能な CVS コミットがアトミック ディレクトリの移動や削除をサポート
  20. 20. Subversion
  21. 21. SVK Subversion や CSV を分散型のように使うための ツール SVK 単体でも利用可能
  22. 22. SVK
  23. 23. Git Git - Fast Version Control System Linus Torvalds が Linux のソースコードを管理する ことをターゲットにして開発 Linux のカーネル ソースコードの規模が大きい 更新が頻繁に発生する
  24. 24. Git
  25. 25. Git の特徴 分散型をサポート 差分ではなくてスナップショット その他
  26. 26. 分散型とは どのマシンもサーバーでありクライアントでありうる リソースはそれぞれのマシンが完全な形で持つ 1つのマシンに障害があった場合も大丈夫 リソースが手元にあるため高速に動作
  27. 27. 集中型
  28. 28. 分散型
  29. 29. 分散型 ( 集中型っぽく )
  30. 30. 分散型 ( 別の使い方 )
  31. 31. 差分ではなくてスナップショットとは 差分 ( 履歴 ) は保存しない コミット時点のスナップショットを取る
  32. 32. 差分を記録
  33. 33. スナップショットを記録
  34. 34. スナップショットを記録
  35. 35. Git のどこが Life Changing か Git - Fast Version Control System 準備の手間がかからない プログラムの応答速度が速い 後から柔軟に修正できる
  36. 36. 準備の手間がかからない 「 git init; git add .; git commit 」 するだけ 他の場所にリポジトリを用意する必要がない
  37. 37. プログラムの応答速度が速い (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/
  38. 38. プログラムの応答速度が速い (2) 一瞬で ( ローカル ) ブランチが作成される リモートサーバーへアクセスする必要がないため ファイルをコピーする必要がないため
  39. 39. 後から柔軟に修正できる (1) ブランチのマージが簡単 マージアルゴリズムも賢い ( らしい )
  40. 40. 後から柔軟に修正できる (2) commit の修正が簡単にできる
  41. 41. 後から柔軟に修正できる (2) commit の修正が簡単にできる
  42. 42. Git のどこが Life Changing か Git - Fast Version Control System 準備の手間がかからない プログラムの応答速度が速い 後から柔軟に修正できる とりあえず Git しておこう!
  43. 43. まとめ Git は簡単に始められます Git は快適です Git は勉強にもなります
  44. 44. 参考 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)
  45. 45. 参考書籍 「入門 Git 」 濱野 純 (Junio C Hamano)
  46. 46. ご静聴ありがとうございました。

×