Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
DVCSとGitの基礎1〜200階(ズシレベル)
1階: まずは基本から
PC内のファイルの変更履歴を保存するシステム。主な機能は、版管理されているファイルの● 作成・変更日時● 変更者● 変更箇所● 変更理由などを保存すること。VCSとは?
VCSの例集中型● VSS(Visual SourceSafe)● SVN(Subversion)分散型● Git● Mercurial● Fossil● Veracity...などなどSafe...?
SVNのイメージ(集中型)リポジトリREADME Hello.java README Hello.java履歴の作成作業コピーの更新作業コピー
SVNの変更履歴のイメージREADMEの追加Hello.javaの実装READMEの編集rev: 1rev: 2rev: 3リポジトリ
SVN(集中型)の特徴● リポジトリを全員で共有● 一般的に遅い○ 変更の送信○ 作業コピーの更新○ 変更履歴の表示● 可用性が低い
50階: DVCS
Gitのイメージ(分散型)リポジトリREADME Hollo.java履歴の作成作業コピーの更新作業コピー
Gitのイメージ(分散型)リポジトリ履歴の送信履歴の受信作業コピー リポジトリ履歴の作成作業コピーの更新リポジトリ経由
Gitのイメージ(分散型)リポジトリ履歴の送信履歴の受信作業コピー リポジトリ履歴の作成作業コピーの更新リポジトリ中央ローカル
Gitの変更履歴のイメージリポジトリリポジトリ中央READMEの追加rev: 1aREADMEの追加rev: 1a
Gitの変更履歴のイメージリポジトリ リポジトリREADMEの追加rev: 1aリポジトリ中央READMEの追加rev: 1aREADMEの追加rev: 1a
Gitの変更履歴のイメージリポジトリ リポジトリREADMEの追加rev: 1aHello.javaの実装rev: 9dリポジトリ中央READMEの追加rev: 1aREADMEの編集rev: 5fREADMEの追加rev: 1a
Gitの変更履歴のイメージリポジトリ リポジトリREADMEの追加rev: 1aHello.javaの実装rev: 9dリポジトリ中央READMEの追加rev: 1aREADMEの編集rev: 5fREADMEの追加rev: 1aHello.j...
Git(分散型)の特徴● ローカルでの操作が速い● ローカルの変更は他ユーザに影響しない(=他ユーザに影響を受けない)● 可用性が高い● マージが安全○ 説明略● 変更履歴の編集が可能○ 説明略(200階: ハンズオンで説明)
100階: Gitのオブジェクト
オブジェクトとは?Gitはプロジェクトの状態をオブジェクトと呼ばれる形で記録している。オブジェクトはSHA-1で統一的な方式で記録されるようになっている。● blob○ ファイルの中身を表すオブジェクト● tree○ ディレクトリの中身と各bl...
● ファイルに対応する● 右図のようなデータを作る○ ヘッダ情報(型とサイズ)○ ボディはファイルの中身● zlibで圧縮 → SHA-1生成blobblob sizeREADME=========Git Project
● ディレクトリに対応する● 型、SHA-1、ファイル名を記録する● 型の種類○ 100644 通常のファイル○ 100755 実行可能ファイル○ 120000 シンボリックリンク○ 40000 ディレクトリ○ 160000 サブモジュール● ...
● 変更履歴に対応する● メタデータを記録○ プロジェクトルートのtreeのSHA-1○ 親のコミット○ 著者、記録者(commiter)○ ログ○ コミット日時● zlib圧縮 → SHA-1生成commitcommit sizetree 5...
● タグに対応する● メタデータを記録○ コミットのSHA-1○ タグ作成者○ タグ作成日時○ ログ● zlibで圧縮 → SHA-1生成tagtag sizecommit 89aatagger sinsokudate 2013/04/20v1...
全体のイメージblob size*.javatree size100644 01ab main/100644 01ab test/commit sizetree 5dbaauthor sinsokucommiter sinsokuREADMEを...
150階: Gitリポジトリの内部構造
リポジトリの内部構造今日のハンズオンに必要な箇所を抜粋● .git/HEAD HEAD● .git/config リポジトリの設定ファイル● .git/index ステージングエリア(180階)● objects/ 各オブジェクト● hooks...
180階: ステージングエリア
gitのワークフロー作業コピーステージングエリアリポジトリ.git/objects/*add FileNamecommitcheckout.git/index
なぜステージングがあるか?一般的なVCS● ファイル単位で変更をコミットgit● 1ファイルの一部だけをコミット可○ バグ修正、リファクタを別でコミット○ ファイルを一部だけ元の状態に戻す意味のある変更単位でコミットできる
200階 受付前: ハンズオン資料の配布
● Git英文マニュアルを読むための予備知識○ http://tokkonopapa.github.io/blog/2012/01/17/prior-knowledge-for-git-manual/● HUNTER×HUNTER(著:富樫義博...
ご清聴ありがとうございます
Upcoming SlideShare
Loading in …5
×

DVCSとGitの基礎

6,521 views

Published on

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

DVCSとGitの基礎

  1. 1. DVCSとGitの基礎1〜200階(ズシレベル)
  2. 2. 1階: まずは基本から
  3. 3. PC内のファイルの変更履歴を保存するシステム。主な機能は、版管理されているファイルの● 作成・変更日時● 変更者● 変更箇所● 変更理由などを保存すること。VCSとは?
  4. 4. VCSの例集中型● VSS(Visual SourceSafe)● SVN(Subversion)分散型● Git● Mercurial● Fossil● Veracity...などなどSafe...?
  5. 5. SVNのイメージ(集中型)リポジトリREADME Hello.java README Hello.java履歴の作成作業コピーの更新作業コピー
  6. 6. SVNの変更履歴のイメージREADMEの追加Hello.javaの実装READMEの編集rev: 1rev: 2rev: 3リポジトリ
  7. 7. SVN(集中型)の特徴● リポジトリを全員で共有● 一般的に遅い○ 変更の送信○ 作業コピーの更新○ 変更履歴の表示● 可用性が低い
  8. 8. 50階: DVCS
  9. 9. Gitのイメージ(分散型)リポジトリREADME Hollo.java履歴の作成作業コピーの更新作業コピー
  10. 10. Gitのイメージ(分散型)リポジトリ履歴の送信履歴の受信作業コピー リポジトリ履歴の作成作業コピーの更新リポジトリ経由
  11. 11. Gitのイメージ(分散型)リポジトリ履歴の送信履歴の受信作業コピー リポジトリ履歴の作成作業コピーの更新リポジトリ中央ローカル
  12. 12. Gitの変更履歴のイメージリポジトリリポジトリ中央READMEの追加rev: 1aREADMEの追加rev: 1a
  13. 13. Gitの変更履歴のイメージリポジトリ リポジトリREADMEの追加rev: 1aリポジトリ中央READMEの追加rev: 1aREADMEの追加rev: 1a
  14. 14. Gitの変更履歴のイメージリポジトリ リポジトリREADMEの追加rev: 1aHello.javaの実装rev: 9dリポジトリ中央READMEの追加rev: 1aREADMEの編集rev: 5fREADMEの追加rev: 1a
  15. 15. Gitの変更履歴のイメージリポジトリ リポジトリREADMEの追加rev: 1aHello.javaの実装rev: 9dリポジトリ中央READMEの追加rev: 1aREADMEの編集rev: 5fREADMEの追加rev: 1aHello.javaの実装rev: 9dREADMEの編集rev: 5f
  16. 16. Git(分散型)の特徴● ローカルでの操作が速い● ローカルの変更は他ユーザに影響しない(=他ユーザに影響を受けない)● 可用性が高い● マージが安全○ 説明略● 変更履歴の編集が可能○ 説明略(200階: ハンズオンで説明)
  17. 17. 100階: Gitのオブジェクト
  18. 18. オブジェクトとは?Gitはプロジェクトの状態をオブジェクトと呼ばれる形で記録している。オブジェクトはSHA-1で統一的な方式で記録されるようになっている。● blob○ ファイルの中身を表すオブジェクト● tree○ ディレクトリの中身と各blobとの対応を表すオブジェクト● commit○ ルートツリーおよびメタデータを持つオブジェクト● tag○ 特定のコミットへのポインタを含むオブジェクト
  19. 19. ● ファイルに対応する● 右図のようなデータを作る○ ヘッダ情報(型とサイズ)○ ボディはファイルの中身● zlibで圧縮 → SHA-1生成blobblob sizeREADME=========Git Project
  20. 20. ● ディレクトリに対応する● 型、SHA-1、ファイル名を記録する● 型の種類○ 100644 通常のファイル○ 100755 実行可能ファイル○ 120000 シンボリックリンク○ 40000 ディレクトリ○ 160000 サブモジュール● zlibで圧縮 → SHA-1生成treetree size40000 01ab src/100644 03bd .gitignore100644 02ed README
  21. 21. ● 変更履歴に対応する● メタデータを記録○ プロジェクトルートのtreeのSHA-1○ 親のコミット○ 著者、記録者(commiter)○ ログ○ コミット日時● zlib圧縮 → SHA-1生成commitcommit sizetree 5dbaparent 9f4aauthor sinsokucommiter sinsokuREADMEを追加
  22. 22. ● タグに対応する● メタデータを記録○ コミットのSHA-1○ タグ作成者○ タグ作成日時○ ログ● zlibで圧縮 → SHA-1生成tagtag sizecommit 89aatagger sinsokudate 2013/04/20v1.0.0をリリース
  23. 23. 全体のイメージblob size*.javatree size100644 01ab main/100644 01ab test/commit sizetree 5dbaauthor sinsokucommiter sinsokuREADMEを追加tree size40000 01ab src/100644 03bd .gitignore100644 02ed READMEblob sizeREADME=========Git Projectrev: 5dbarev: 89aarev: 03bdrev: 02edrev: 01ab
  24. 24. 150階: Gitリポジトリの内部構造
  25. 25. リポジトリの内部構造今日のハンズオンに必要な箇所を抜粋● .git/HEAD HEAD● .git/config リポジトリの設定ファイル● .git/index ステージングエリア(180階)● objects/ 各オブジェクト● hooks/ git-hooks● refs/ ブランチ、タグ
  26. 26. 180階: ステージングエリア
  27. 27. gitのワークフロー作業コピーステージングエリアリポジトリ.git/objects/*add FileNamecommitcheckout.git/index
  28. 28. なぜステージングがあるか?一般的なVCS● ファイル単位で変更をコミットgit● 1ファイルの一部だけをコミット可○ バグ修正、リファクタを別でコミット○ ファイルを一部だけ元の状態に戻す意味のある変更単位でコミットできる
  29. 29. 200階 受付前: ハンズオン資料の配布
  30. 30. ● Git英文マニュアルを読むための予備知識○ http://tokkonopapa.github.io/blog/2012/01/17/prior-knowledge-for-git-manual/● HUNTER×HUNTER(著:富樫義博)参考
  31. 31. ご清聴ありがとうございます

×