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.
ハンズオン200階(カストロ、ヒソカレベル)
基本ルール● コミットのたびにオブジェクトの図をノートに書く● リポジトリの内部を見る
1. リポジトリの作成ハンズオン用のリポジトリ、作業ディレクトリを作成する$ mkdir hh_git$ cd hh_git$ git init
1. リポジトリの作成.git/ の中身を見る● objects/ は info/ と pack/ だけ● HEAD の中身が master になっている● refs/heads/ の中身が空● refs/tags/ の中身が空
2. READMEを作る空のファイルをコミットしてみる$ touch README$ git add README$ git commit -m "add README"
3. リポジトリの状態を見るまずはログを見る$ git logここでコミットのハッシュ値(sha-1)をメモる。
3. リポジトリの状態を見る1. commitオブジェクトの中身を見る$ git cat-file -p <sha-1>2. 更にtreeオブジェクトの中身を見る$ git cat-file -p <sha-1>3. .git/objects/...
3. リポジトリの状態を見る4. リポジトリの状態を図に書く (↓な感じの図をノートに書く)committreeblob5f97f 543b9 e69deblobのsha-1はファイル内容で決まるため、同じになるはずcommit, treeのs...
4. 別のファイルを作るその前に、一作業。masterブランチは邪魔なので、ブランチを外す。commitのsha-1をチェックアウトする。$ git checkout <sha-1>※ この資料だと 5f97f になるブランチを外した理由は後ほ...
4. 別のファイルを作る課題: 今日の勉強会の内容をメモに書く1. ファイルを作成し、add & commit をしてみる2. cat-file -pで先ほどと同じくノートに図を書く3. 今作成したファイルを更に編集し、 もう1回 add& c...
4. 別のファイルを作る5.図がこんな感じになる● e69de が同じオブジェクトを参照している66e825f97f 543b9 e69de8ed4f89c43976711b92be69dee69dee3cbdcommit, treeのsha-...
5. (無名)ブランチを作る1. READMEを作った<sha-1>をcheckoutする$ git checkout <sha-1>※ この資料だと 5f97f 。先ほど作成したファイルがディレクトリから消えればOK2. README を編集...
5. (無名)ブランチを作る3.図がこんな感じになる● gitは自然に分岐する66e825f97f 543b9 e69de8ed4f89c43976711b92be69dee69dee3cbdcommit, treeのsha-1は(ry5226...
6. マージコミットを作る今日の勉強会のメモを書いていたsha-1をマージする$ git merge --no-ff <sha-1>※ この資料だと 8ed4f
6. マージコミットを作る図がこんな感じになる● マージコミットは親が2つある● blobが上手くマージされている66e825f97f 543b9 e69de8ed4f 89c43976711b92be69dee69dee3cbdcommit,...
休憩: fast-forward図で分かるgit-mergeの--ff, --no-ff, --squashの違いhttp://d.hatena.ne.jp/sinsoku/20111025/1319497900
7. 手作りブランチ1. 現在のブランチの状況を見てみる$ git branch2. .git/refs/heads/master を見てみる$ cat .git/refs/heads/master
7. 手作りブランチ3. 勉強会のメモからブランチを作ってみる$ echo "<sha-1>" > .git/refs/heads/piyo※ この資料だと 8ed4f... の40桁4. 作成したブランチが表示される事を確認$ git bra...
7. 手作りブランチ6. .git/HEAD を見てみる=> ブランチに変わっている7. cherry-pickでREADMEの変更を取得してみる$ git cherry-pick <sha-1>※ この資料だと 5226d8. ノートに図を書...
7. 手作りブランチ図がこんな感じになる66e825f97f 543b9 e69de8ed4f 89c43976711b92be69dee69dee3cbdcommit, treeのsha-1は(ry5226ddc1f7 069315e5ded...
7. 手作りブランチ9. .git/refs/heads/piyo の中身を見てみるブランチをcheckout した状態でコミットするとsha-1が更新される
8. リモートの変更を取得する1. リモートにあるリポジトリから変更を取得してみる。$ git fetch git://github.com/sinsoku/banana※もし自分のリポジトリを持っていれば、そちらで試してもOK
8. リモートの変更を取得する2. コミットオブジェクトの有無を確認する。$ git show <sha-1>※ この資料だと 73c99リモートの変更が取得できている。ただ、この方法では<sha-1>が分からないとログを表示できない。
9. リモートに名前をつける1. URLに名前を付けることができる$ git remote add <name> <url>例:$ git remote add sinsoku git://github.com/sinsoku/banana
9. リモートに名前をつける2. リモートの変更を取得する$ git fetch sinsoku3. .git/refs/remotes/, .git/refs/tags/ を見てみる。4. git branch -a でブランチを表示するリモ...
9. リモートに名前をつける補足● リモートのタグも .git/refs/tags/ に入るため、ローカルとリモートのタグは混ざる● リモートのブランチの複製はfetchのタイミングで更新される(リモートが別の人に更新されても、ローカルに複製さ...
10. ブランチの履歴ブランチは更新履歴を持つ$ git reflog show piyo● rebaseやresetを使用した時に重宝する● 基本的に git gcが走るまでオブジェクトが消えたりしない
Upcoming SlideShare
Loading in …5
×

Git天空闘技場_ハンズオン

5,000 views

Published on

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. 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/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. 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

Git天空闘技場_ハンズオン

  1. 1. ハンズオン200階(カストロ、ヒソカレベル)
  2. 2. 基本ルール● コミットのたびにオブジェクトの図をノートに書く● リポジトリの内部を見る
  3. 3. 1. リポジトリの作成ハンズオン用のリポジトリ、作業ディレクトリを作成する$ mkdir hh_git$ cd hh_git$ git init
  4. 4. 1. リポジトリの作成.git/ の中身を見る● objects/ は info/ と pack/ だけ● HEAD の中身が master になっている● refs/heads/ の中身が空● refs/tags/ の中身が空
  5. 5. 2. READMEを作る空のファイルをコミットしてみる$ touch README$ git add README$ git commit -m "add README"
  6. 6. 3. リポジトリの状態を見るまずはログを見る$ git logここでコミットのハッシュ値(sha-1)をメモる。
  7. 7. 3. リポジトリの状態を見る1. commitオブジェクトの中身を見る$ git cat-file -p <sha-1>2. 更にtreeオブジェクトの中身を見る$ git cat-file -p <sha-1>3. .git/objects/ の中身を見る
  8. 8. 3. リポジトリの状態を見る4. リポジトリの状態を図に書く (↓な感じの図をノートに書く)committreeblob5f97f 543b9 e69deblobのsha-1はファイル内容で決まるため、同じになるはずcommit, treeのsha-1は環境によって変わる
  9. 9. 4. 別のファイルを作るその前に、一作業。masterブランチは邪魔なので、ブランチを外す。commitのsha-1をチェックアウトする。$ git checkout <sha-1>※ この資料だと 5f97f になるブランチを外した理由は後ほど説明。
  10. 10. 4. 別のファイルを作る課題: 今日の勉強会の内容をメモに書く1. ファイルを作成し、add & commit をしてみる2. cat-file -pで先ほどと同じくノートに図を書く3. 今作成したファイルを更に編集し、 もう1回 add& commit をする。4. cat-file -p で同じくノートに図を書く。
  11. 11. 4. 別のファイルを作る5.図がこんな感じになる● e69de が同じオブジェクトを参照している66e825f97f 543b9 e69de8ed4f89c43976711b92be69dee69dee3cbdcommit, treeのsha-1は環境によって変わる
  12. 12. 5. (無名)ブランチを作る1. READMEを作った<sha-1>をcheckoutする$ git checkout <sha-1>※ この資料だと 5f97f 。先ほど作成したファイルがディレクトリから消えればOK2. README を編集して、commit & 図を書く
  13. 13. 5. (無名)ブランチを作る3.図がこんな感じになる● gitは自然に分岐する66e825f97f 543b9 e69de8ed4f89c43976711b92be69dee69dee3cbdcommit, treeのsha-1は(ry5226ddc1f7 06931
  14. 14. 6. マージコミットを作る今日の勉強会のメモを書いていたsha-1をマージする$ git merge --no-ff <sha-1>※ この資料だと 8ed4f
  15. 15. 6. マージコミットを作る図がこんな感じになる● マージコミットは親が2つある● blobが上手くマージされている66e825f97f 543b9 e69de8ed4f 89c43976711b92be69dee69dee3cbdcommit, treeのsha-1は(ry5226ddc1f7 069315e5dedc1f797671bce2d
  16. 16. 休憩: fast-forward図で分かるgit-mergeの--ff, --no-ff, --squashの違いhttp://d.hatena.ne.jp/sinsoku/20111025/1319497900
  17. 17. 7. 手作りブランチ1. 現在のブランチの状況を見てみる$ git branch2. .git/refs/heads/master を見てみる$ cat .git/refs/heads/master
  18. 18. 7. 手作りブランチ3. 勉強会のメモからブランチを作ってみる$ echo "<sha-1>" > .git/refs/heads/piyo※ この資料だと 8ed4f... の40桁4. 作成したブランチが表示される事を確認$ git branch5. チェックアウトしてみる$ git checkout piyo
  19. 19. 7. 手作りブランチ6. .git/HEAD を見てみる=> ブランチに変わっている7. cherry-pickでREADMEの変更を取得してみる$ git cherry-pick <sha-1>※ この資料だと 5226d8. ノートに図を書いてみる
  20. 20. 7. 手作りブランチ図がこんな感じになる66e825f97f 543b9 e69de8ed4f 89c43976711b92be69dee69dee3cbdcommit, treeのsha-1は(ry5226ddc1f7 069315e5dedc1f797671bce2d.........
  21. 21. 7. 手作りブランチ9. .git/refs/heads/piyo の中身を見てみるブランチをcheckout した状態でコミットするとsha-1が更新される
  22. 22. 8. リモートの変更を取得する1. リモートにあるリポジトリから変更を取得してみる。$ git fetch git://github.com/sinsoku/banana※もし自分のリポジトリを持っていれば、そちらで試してもOK
  23. 23. 8. リモートの変更を取得する2. コミットオブジェクトの有無を確認する。$ git show <sha-1>※ この資料だと 73c99リモートの変更が取得できている。ただ、この方法では<sha-1>が分からないとログを表示できない。
  24. 24. 9. リモートに名前をつける1. URLに名前を付けることができる$ git remote add <name> <url>例:$ git remote add sinsoku git://github.com/sinsoku/banana
  25. 25. 9. リモートに名前をつける2. リモートの変更を取得する$ git fetch sinsoku3. .git/refs/remotes/, .git/refs/tags/ を見てみる。4. git branch -a でブランチを表示するリモートリポジトリのブランチがローカルに複製されている事が確認できる
  26. 26. 9. リモートに名前をつける補足● リモートのタグも .git/refs/tags/ に入るため、ローカルとリモートのタグは混ざる● リモートのブランチの複製はfetchのタイミングで更新される(リモートが別の人に更新されても、ローカルに複製されたブランチは古いまま)● git clone <url> は git init の後に、git remote addorigin <url> している事と同じ
  27. 27. 10. ブランチの履歴ブランチは更新履歴を持つ$ git reflog show piyo● rebaseやresetを使用した時に重宝する● 基本的に git gcが走るまでオブジェクトが消えたりしない

×