git -分散バージョン管理システム-
DESCRIPTION
TRANSCRIPT
Git
2009/03/12 Python勉強会
- 分散バージョン管理システム -
アジェンダ
バージョン管理システム?
Git?
ワークフロー
まとめ
バージョン管理システム?
バージョン管理システム?
設計書やソースコードを管理
それぞれに「バージョン」を付与する
現在の主流タイプは「集中型」
バージョン管理システム?
設計書やソースコードを管理
それぞれに「バージョン」を付与する
現在の主流タイプは「集中型」
バージョン管理システムの種類
集中型
分散型
集中型バージョン管理システム
サーバ上に中央リポジトリを設置
開発者は中央リポジトリ経由で開発
チェックアウト, コミット
Subversion, CVS
図: 分散バージョン管理Git/Mercurial/Bazaar徹底比較 (1/5) - @IThttp://www.atmarkit.co.jp/fjava/rensai4/devtool03/devtool03_1.html
集中型の問題点
中央リポジトリを各開発者で共有
開発者Aがコミット
しかし内容にバグがある
各開発者にバグ入りソースが共有される
/(^o^)\
分散型バージョン管理システム
開発者がローカルリポジトリを持つ
コミットなどはそこにする
作業後、中央リポジトリとマージ
Git, Mercurial
図: 分散バージョン管理Git/Mercurial/Bazaar徹底比較 (1/5) - @IThttp://www.atmarkit.co.jp/fjava/rensai4/devtool03/devtool03_1.html
分散型のメリット
コミットしても他開発者に影響しない
好き勝手にコミットできる
ネットワーク環境がなくても作業ができる
コミット権のないプロジェクトへのHack
プロジェクトの完全な履歴も手に入る
Git?
Git?
分散型バージョン管理システム
「ギット」
リーナス・トーバルズ (Linuxの人) が開発
曰く、「CVSはダメ。俺がもっといいの作る」
YouTube: ”Tech Talk: Linus Torvalds on git”
Gitを利用したプロジェクトLinux カーネル
Perl 5
Samba
Ruby on Rails
Merb
Wine
Android
ワークフロー
リモートリポジトリのコピー
$ git clone /path/to/ [プロジェクト名]
ファイル編集, 追加
$ git add [ファイル名]
コミット (ローカルリポジトリに)
$ git commit -m ‘commit!!’
ワークフロー (1/2)
プロジェクトの変更履歴を見る
$ git log
リモートリポジトリのマージ
$ git pull /path/to/ [プロジェクト名]
リモートリポジトリへのコミット
$ git push /path/to/ [プロジェクト名]
ワークフロー (2/2)
まとめ
まとめ
Gitは分散型バージョン管理システム
ローカルリポジトリでコミットし放題
プロジェクトをcloneして俺俺プロジェクト
今からSubversionするならGitの方がいいよ!
参考サイト
Git - Fast Version Control System
http://git-scm.com/
バージョン管理システム - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0
Git - Wikipedia
http://ja.wikipedia.org/wiki/Git
分散バージョン管理Git/Mercurial/Bazaar徹底比較 (1/5) - @IT
http://www.atmarkit.co.jp/fjava/rensai4/devtool03/devtool03_1.html
かWiki - Git/分散レポジトリって何が嬉しいの
http://b4.x0.com/hiki/?Git%2F%CA%AC%BB%B6%A5%EC%A5%DD%A5%B8%A5%C8%A5%EA%A4%C3%A4%C6%B2%BF%A4%AC%B4%F2%A4%B7%A4%A4%A4%CE
はじめてのgit | IDEA*IDEA
http://www.ideaxidea.com/archives/2008/04/git.html
git チュートリアル (バージョン 1.5.1 以降用)
http://www8.atwiki.jp/git_jp/pub/Documentation.ja/tutorial.html
ご静聴ありがとうございました