SlideShare a Scribd company logo
1 of 46
Download to read offline
とりあえず Git
~ Git 入門前夜~




 天野卓 @ ToI 企画
自己紹介
佐久市で Web アプリケーションを開発しています。
  LAMP
 Movable Type のプラグインをフリーソフトウェアと
して配布しています。
http://tec.toi-planning.net
GitHub でも活動しています。
http://github.com/usualoma
この発表に関する資料
以下の URL からダウンロードできます。
http://www.slideshare.net/tag/nseg
もくじ
バージョン管理システムとは
Git に至るまでの歴史
Git の特徴
Git のどこが Life Changing か
バージョン管理システムとは
過去のファイルを保存する
過去のディレクトリの状態を保存する
過去のディレクトリの状態を保存する
バージョンにメタ情報を付ける
保存したディレクトリ間の差分を知る
編集内容にメタ情報を付ける
編集内容をマージする
Git に至るまでの歴史
年表
1982: RCS
1990: CVS
2001: Subversion
2003: SVK
2005: Git, Mercurial, Bazaar(2004)
RCS
ファイル単位でバージョンを管理
vi の代りに ci と打つと管理が始まる
RCS
CVS
複数の RCS をまとめて管理
ある時点の状態にタグを付けることが可能
 サーバー / クライアント形式でネットワーク越しの
共有が可能
CVS
Subversion
高性能な CVS
 コミットがアトミック
 ディレクトリの移動や削除をサポート
Subversion
SVK
 Subversion や CSV を分散型のように使うための
ツール
SVK 単体でも利用可能
SVK
Git
Git - Fast Version Control System
 Linus Torvalds が Linux のソースコードを管理する
ことをターゲットにして開発
Linux のカーネル
  ソースコードの規模が大きい
  更新が頻繁に発生する
Git
Git の特徴
分散型をサポート
差分ではなくてスナップショット
その他
分散型とは
どのマシンもサーバーでありクライアントでありうる
リソースはそれぞれのマシンが完全な形で持つ
 1つのマシンに障害があった場合も大丈夫
 リソースが手元にあるため高速に動作
集中型
分散型
分散型 ( 集中型っぽく )
分散型 ( 別の使い方 )
差分ではなくてスナップショットとは
差分 ( 履歴 ) は保存しない
コミット時点のスナップショットを取る
差分を記録
スナップショットを記録
スナップショットを記録
Git のどこが Life Changing か
Git - Fast Version Control System
  準備の手間がかからない
  プログラムの応答速度が速い
  後から柔軟に修正できる
準備の手間がかからない
「 git init; git add .; git commit 」 するだけ
他の場所にリポジトリを用意する必要がない
プログラムの応答速度が速い (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/
プログラムの応答速度が速い (2)
一瞬で ( ローカル ) ブランチが作成される
 リモートサーバーへアクセスする必要がないため
 ファイルをコピーする必要がないため
後から柔軟に修正できる (1)
ブランチのマージが簡単
マージアルゴリズムも賢い ( らしい )
後から柔軟に修正できる (2)
commit の修正が簡単にできる
後から柔軟に修正できる (2)
commit の修正が簡単にできる
Git のどこが Life Changing か
Git - Fast Version Control System
  準備の手間がかからない
  プログラムの応答速度が速い
  後から柔軟に修正できる


   とりあえず Git しておこう!
まとめ
Git は簡単に始められます
Git は快適です
Git は勉強にもなります
参考 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)
参考書籍
「入門 Git 」 濱野 純 (Junio C Hamano)
ご静聴ありがとうございました。

More Related Content

What's hot

Git社内勉強会資料
Git社内勉強会資料Git社内勉強会資料
Git社内勉強会資料Kenji Takei
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」Taisuke Inoue
 
第1回Git勉強会
第1回Git勉強会第1回Git勉強会
第1回Git勉強会kunimiya
 
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話Kazuhiro Nishiyama
 
Pro Git 第2版はじめました
Pro Git 第2版はじめましたPro Git 第2版はじめました
Pro Git 第2版はじめましたharupong
 
Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwellsinsoku listy
 
Git lev 1-おひとりさま用-
Git lev 1-おひとりさま用-Git lev 1-おひとりさま用-
Git lev 1-おひとりさま用-Kentarou Kurashige
 
GitHubにおける開発フローについてのお話
GitHubにおける開発フローについてのお話GitHubにおける開発フローについてのお話
GitHubにおける開発フローについてのお話Sota Sugiura
 
Git -分散バージョン管理システム-
Git -分散バージョン管理システム-Git -分散バージョン管理システム-
Git -分散バージョン管理システム-Koji Shinba
 
Gitの基本コマンド
Gitの基本コマンドGitの基本コマンド
Gitの基本コマンド晋 小沼
 
Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回Tetsurou Yano
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座Yusei Yamanaka
 
日本androidの会 中国支部 29回勉強会 github
日本androidの会 中国支部 29回勉強会 github日本androidの会 中国支部 29回勉強会 github
日本androidの会 中国支部 29回勉強会 githubTomohiko Himura
 

What's hot (20)

Git社内勉強会資料
Git社内勉強会資料Git社内勉強会資料
Git社内勉強会資料
 
Git lev 4 -みんなでGit-
Git lev 4 -みんなでGit-Git lev 4 -みんなでGit-
Git lev 4 -みんなでGit-
 
Gitの勉強 紹介編-
Gitの勉強 紹介編-Gitの勉強 紹介編-
Gitの勉強 紹介編-
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
 
第1回Git勉強会
第1回Git勉強会第1回Git勉強会
第1回Git勉強会
 
Gitの設定
Gitの設定Gitの設定
Gitの設定
 
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
 
Pro Git 第2版はじめました
Pro Git 第2版はじめましたPro Git 第2版はじめました
Pro Git 第2版はじめました
 
Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwell
 
Git lev 1-おひとりさま用-
Git lev 1-おひとりさま用-Git lev 1-おひとりさま用-
Git lev 1-おひとりさま用-
 
GitHubにおける開発フローについてのお話
GitHubにおける開発フローについてのお話GitHubにおける開発フローについてのお話
GitHubにおける開発フローについてのお話
 
Git -分散バージョン管理システム-
Git -分散バージョン管理システム-Git -分散バージョン管理システム-
Git -分散バージョン管理システム-
 
Gitの基本コマンド
Gitの基本コマンドGitの基本コマンド
Gitの基本コマンド
 
Git flow
Git flowGit flow
Git flow
 
gitを1から学ぼう!
gitを1から学ぼう!gitを1から学ぼう!
gitを1から学ぼう!
 
Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回
 
GitLab Prometheus
GitLab PrometheusGitLab Prometheus
GitLab Prometheus
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座
 
日本androidの会 中国支部 29回勉強会 github
日本androidの会 中国支部 29回勉強会 github日本androidの会 中国支部 29回勉強会 github
日本androidの会 中国支部 29回勉強会 github
 
Bitbucket and git
Bitbucket and gitBitbucket and git
Bitbucket and git
 

Viewers also liked

【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーションyy yank
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜Takashi Uemura
 
2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門Asami Abe
 
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンスLivesense Inc.
 
人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説Livesense Inc.
 
人は1ヶ月でエンジニアになれるのか
人は1ヶ月でエンジニアになれるのか人は1ヶ月でエンジニアになれるのか
人は1ヶ月でエンジニアになれるのかYamaura Kiyoto
 

Viewers also liked (6)

【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
 
2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門
 
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
 
人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説
 
人は1ヶ月でエンジニアになれるのか
人は1ヶ月でエンジニアになれるのか人は1ヶ月でエンジニアになれるのか
人は1ヶ月でエンジニアになれるのか
 

Similar to Git 20100313

VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 Hiro Yoshioka
 
2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座貴一 末田
 
Git講習会
Git講習会Git講習会
Git講習会galluda
 
@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門Takashi Imagire
 
ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門Keisuke Oohata
 
Gitプレゼンテーション
GitプレゼンテーションGitプレゼンテーション
GitプレゼンテーションMasaru Ookawa
 
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアルVersion Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアルComputational Materials Science Initiative
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門to_ueda
 
GitHubワークショップ
GitHubワークショップGitHubワークショップ
GitHubワークショップHiroaki Murayama
 
XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用賢次 海老原
 
Git_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdfGit_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdfYoshiki Tanaka
 
Git 初心者のための GitHub Pages
Git 初心者のための GitHub PagesGit 初心者のための GitHub Pages
Git 初心者のための GitHub PagesTakenori Nakagawa
 
バージョン管理とGit
バージョン管理とGitバージョン管理とGit
バージョン管理とGitsinsoku listy
 
git-followup @明石高専2E
git-followup @明石高専2Egit-followup @明石高専2E
git-followup @明石高専2ESanae Yamashita
 

Similar to Git 20100313 (20)

VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011
 
Git&GitHub入門
Git&GitHub入門Git&GitHub入門
Git&GitHub入門
 
Gitの紹介
Gitの紹介Gitの紹介
Gitの紹介
 
2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座
 
Git/GitHub
Git/GitHubGit/GitHub
Git/GitHub
 
Git講習会
Git講習会Git講習会
Git講習会
 
Git
GitGit
Git
 
@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門
 
ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門
 
Gitプレゼンテーション
GitプレゼンテーションGitプレゼンテーション
Gitプレゼンテーション
 
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアルVersion Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアル
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 
GitHubワークショップ
GitHubワークショップGitHubワークショップ
GitHubワークショップ
 
XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用
 
Git_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdfGit_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdf
 
Git 初心者のための GitHub Pages
Git 初心者のための GitHub PagesGit 初心者のための GitHub Pages
Git 初心者のための GitHub Pages
 
Github第4章
Github第4章Github第4章
Github第4章
 
バージョン管理とGit
バージョン管理とGitバージョン管理とGit
バージョン管理とGit
 
git-followup @明石高専2E
git-followup @明石高専2Egit-followup @明石高専2E
git-followup @明石高専2E
 
Github入門2014
Github入門2014Github入門2014
Github入門2014
 

More from Taku AMANO

未設定のドメインでも ELB 経由で proxy.pac を使って https で接続する方法
未設定のドメインでも ELB 経由で proxy.pac を使って https で接続する方法未設定のドメインでも ELB 経由で proxy.pac を使って https で接続する方法
未設定のドメインでも ELB 経由で proxy.pac を使って https で接続する方法Taku AMANO
 
Movable Type as a Playground
Movable Type as a PlaygroundMovable Type as a Playground
Movable Type as a PlaygroundTaku AMANO
 
The New Rich Text Editor
The New Rich Text EditorThe New Rich Text Editor
The New Rich Text EditorTaku AMANO
 
File API: Writer & Directories and System
File API: Writer & Directories and SystemFile API: Writer & Directories and System
File API: Writer & Directories and SystemTaku AMANO
 
CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and ProgrammingTaku AMANO
 
Movable Type in the cloud
Movable Type in the cloudMovable Type in the cloud
Movable Type in the cloudTaku AMANO
 
About NSEG Vol.5
About NSEG Vol.5About NSEG Vol.5
About NSEG Vol.5Taku AMANO
 
HTML5-20100626
HTML5-20100626HTML5-20100626
HTML5-20100626Taku AMANO
 
Self Introduction 20100211
Self Introduction 20100211Self Introduction 20100211
Self Introduction 20100211Taku AMANO
 
MT LT 20100205
MT LT 20100205MT LT 20100205
MT LT 20100205Taku AMANO
 
MT LT 20091209
MT LT 20091209MT LT 20091209
MT LT 20091209Taku AMANO
 

More from Taku AMANO (12)

未設定のドメインでも ELB 経由で proxy.pac を使って https で接続する方法
未設定のドメインでも ELB 経由で proxy.pac を使って https で接続する方法未設定のドメインでも ELB 経由で proxy.pac を使って https で接続する方法
未設定のドメインでも ELB 経由で proxy.pac を使って https で接続する方法
 
Movable Type as a Playground
Movable Type as a PlaygroundMovable Type as a Playground
Movable Type as a Playground
 
The New Rich Text Editor
The New Rich Text EditorThe New Rich Text Editor
The New Rich Text Editor
 
File API: Writer & Directories and System
File API: Writer & Directories and SystemFile API: Writer & Directories and System
File API: Writer & Directories and System
 
CSS Design and Programming
CSS Design and ProgrammingCSS Design and Programming
CSS Design and Programming
 
Movable Type in the cloud
Movable Type in the cloudMovable Type in the cloud
Movable Type in the cloud
 
Git 20100724
Git 20100724Git 20100724
Git 20100724
 
About NSEG Vol.5
About NSEG Vol.5About NSEG Vol.5
About NSEG Vol.5
 
HTML5-20100626
HTML5-20100626HTML5-20100626
HTML5-20100626
 
Self Introduction 20100211
Self Introduction 20100211Self Introduction 20100211
Self Introduction 20100211
 
MT LT 20100205
MT LT 20100205MT LT 20100205
MT LT 20100205
 
MT LT 20091209
MT LT 20091209MT LT 20091209
MT LT 20091209
 

Git 20100313