60
Git 初心者講座 by Forkwell 2016/12/21()@grooves

Git 初心者講座 by forkwell

Embed Size (px)

Citation preview

Page 1: Git 初心者講座 by forkwell

Git 初心者講座 by Forkwell

2016/12/21(水)@grooves

Page 2: Git 初心者講座 by forkwell

自己紹介

● 名前: 正徳 巧● twitter: 神速(@sinsoku_listy)● github: sinsoku● 所属: 株式会社grooves● 言語: Ruby, Node.js, Elixir

Twitter

GitHub

Page 3: Git 初心者講座 by forkwell
Page 4: Git 初心者講座 by forkwell

バージョン管理

Git/GitHub

Page 5: Git 初心者講座 by forkwell
Page 6: Git 初心者講座 by forkwell

なぜバージョン管理システムを使うのか?

Page 7: Git 初心者講座 by forkwell

履歴が見られる

いつ 誰が どこを

理由: XXX のバグを修正

Page 8: Git 初心者講座 by forkwell

過去の状態に戻せる

Page 9: Git 初心者講座 by forkwell

複数人で作業ができる

マージ(統合)

Page 10: Git 初心者講座 by forkwell

複数バージョンを管理できる

バージョン 1系

バージョン 2系

Page 11: Git 初心者講座 by forkwell

実験的な作業を行える

安定版

開発版

Page 12: Git 初心者講座 by forkwell

実験的な作業を行える

安定版

Page 13: Git 初心者講座 by forkwell

実験的な作業を行える

安定版

開発版

Page 14: Git 初心者講座 by forkwell

ファイルを安心して変更できる

Page 15: Git 初心者講座 by forkwell

どんな仕組み?

Page 16: Git 初心者講座 by forkwell

Project

README

src

リポジトリ

作業ディレクトリ

Page 17: Git 初心者講座 by forkwell

Project

README

src

リポジトリ

作業ディレクトリ

save 1

Page 18: Git 初心者講座 by forkwell

Project

README

src

リポジトリ

作業ディレクトリ

save 1 save 2

Page 19: Git 初心者講座 by forkwell

Project

README

src

リポジトリ

作業ディレクトリ

save 1 save 2 save 3

Page 20: Git 初心者講座 by forkwell

バージョン管理

Git/GitHub

Page 21: Git 初心者講座 by forkwell

git の特徴

分散型 インデックス ブランチ・タグ

Page 22: Git 初心者講座 by forkwell

リポジトリ

README Hello.java README Hello.java

履歴の作成

作業コピーの更新

作業コピー

集中型(svn)

Page 23: Git 初心者講座 by forkwell

READMEの追加

Hello.javaの実装

READMEの編集

rev: 1

rev: 2

rev: 3

リポジトリ

集中型(svn)

Page 24: Git 初心者講座 by forkwell

リポジトリ

README Hello.java

履歴の作成

作業コピーの更新

作業コピー

分散型(git)

Page 25: Git 初心者講座 by forkwell

リポジトリ

履歴の送信

履歴の受信

作業コピー リポジトリ

履歴の作成

作業コピーの更新

分散型(git)

Page 26: Git 初心者講座 by forkwell

リポジトリ

履歴の送信

履歴の受信

作業コピー リポジトリ

履歴の作成

作業コピーの更新

リポジトリ

中央

ローカル

分散型(git)

Page 27: Git 初心者講座 by forkwell

リポジトリ

リポジトリ

中央

READMEの追加

READMEの追加

rev:1af9b

rev:1af9b

Page 28: Git 初心者講座 by forkwell

リポジトリ リポジトリ

READMEの追加

リポジトリ

中央

READMEの追加

READMEの追加

rev:1af9b

rev:1af9b

rev:1af9b

Page 29: Git 初心者講座 by forkwell

リポジトリ リポジトリ

READMEの追加

Hello.javaの実装

rev:9d6aa

リポジトリ

中央

READMEの追加

READMEの編集

READMEの追加

rev:1af9b

rev: 5fde8

rev:1af9b

rev:1af9b

Page 30: Git 初心者講座 by forkwell

リポジトリ リポジトリ

READMEの追加

rev:1af9b

Hello.javaの実装

rev:9d6aa

リポジトリ

中央

READMEの追加

rev:1af9b

READMEの編集

rev: 5fde8

READMEの追加

rev:1af9b

Hello.javaの実装

rev:9d6aa

READMEの編集

rev: 5fde8

Page 31: Git 初心者講座 by forkwell

rev: 5fde8?

Page 32: Git 初心者講座 by forkwell

リポジトリ リポジトリ

READMEの追加

rev:1af9b

Hello.javaの実装

rev:9d6aa

リポジトリ

中央

READMEの追加

rev:1af9b

READMEの編集

rev: 5fde8

READMEの追加

rev:1af9b

Hello.javaの実装

rev:9d6aa

READMEの編集

rev: 5fde8

Page 33: Git 初心者講座 by forkwell

READMEの追加

Hello.javaの実装

READMEの編集

rev: 1

rev: 2

rev: 3

リポジトリ

集中型(svn)

Page 34: Git 初心者講座 by forkwell

39fde84ab553783eab2b0443b7fe7300eb65119d

SHA-1 変換器

コミット内容(日時、変更者 など)

16進数40桁

Page 35: Git 初心者講座 by forkwell

SHA-1 変換器

コミット内容(日時、変更者 など)

16進数40桁

39fde84ab553783eab2b0443b7fe7300eb65119d

Page 36: Git 初心者講座 by forkwell

git の特徴

分散型 インデックス ブランチ・タグ

Page 37: Git 初心者講座 by forkwell

作業ディレクトリ

インデックス リポジトリ

・・・

Page 38: Git 初心者講座 by forkwell

作業ディレクトリ

インデックス リポジトリ

・・・

add

Page 39: Git 初心者講座 by forkwell

作業ディレクトリ

インデックス リポジトリ

・・・

commit

Page 40: Git 初心者講座 by forkwell

作業ディレクトリ

インデックス リポジトリ

・・・

add

Page 41: Git 初心者講座 by forkwell

作業ディレクトリ

インデックス リポジトリ

・・・

commit

Page 42: Git 初心者講座 by forkwell

なぜインデックスがあるのか?

Page 43: Git 初心者講座 by forkwell

行単位でのコミット コミット前の確認

Page 44: Git 初心者講座 by forkwell

git の特徴

分散型 インデックス ブランチ・タグ

Page 45: Git 初心者講座 by forkwell

rev: 1af9b rev: 5fde8

$ git branch stable 5fde8$ git checkout stable

ブランチstable

Page 46: Git 初心者講座 by forkwell

rev: 1af9b rev: 5fde8

$ (ファイルの変更)$ git add

ブランチstable

Page 47: Git 初心者講座 by forkwell

rev: 1af9b rev: 5fde8 rev: 9d6aa

$ git commit -m “update”

ブランチ

stable

Page 48: Git 初心者講座 by forkwell

3種類のタグ

軽量タグアノテーション付きタグ

署名付きタグ

Page 49: Git 初心者講座 by forkwell

軽量タグ

v1.0.0

rev: 1af9b rev: 5fde8

$ git tag v1.0.0 5fde8

Page 50: Git 初心者講座 by forkwell

軽量タグ

v1.0.0

rev: 1af9b rev: 5fde8 rev: 9d6aa

$ git commit -m “update”

Page 51: Git 初心者講座 by forkwell
Page 52: Git 初心者講座 by forkwell

Gitのホスティングサービス

Octocat

● 中央リポジトリを置くことができる● 公開リポジトリ無制限

(非公開は有料 )● Web上でファイルが表示できる● 使い易い画面● Pull Request(プルリクエスト)

Page 53: Git 初心者講座 by forkwell

リポジトリ

リポジトリ

Pull Request

Page 54: Git 初心者講座 by forkwell

リポジトリ

リポジトリ

Pull Request

リポジトリ

アクセス権限がない

Page 55: Git 初心者講座 by forkwell

リポジトリ

リポジトリ

Pull Request

リポジトリ

Fork

Page 56: Git 初心者講座 by forkwell

リポジトリ

リポジトリ

Pull Request

リポジトリ

Fork

リポジトリ

Page 57: Git 初心者講座 by forkwell

リポジトリ

リポジトリ

Pull Request

リポジトリ

Fork

リポジトリ

push

commit

Page 58: Git 初心者講座 by forkwell

リポジトリ

リポジトリ

Pull Request

リポジトリ

Fork

リポジトリ

Pull Request

Page 59: Git 初心者講座 by forkwell

更に勉強する際の参考資料

● サルでもわかるGit入門

○ http://www.backlog.jp/git-guide/

● Pro Git Book

○ https://git-scm.com/book/ja/v2

● Try Git: Git Tutorial

○ https://try.github.io

引用: サルでもわかるGit入門

Page 60: Git 初心者講座 by forkwell

ご清聴ありがとうございました