クリアな履歴とコードために  -git 入門編-

33
クリアな履歴とコードのために -Git 入門編- Asuka Kamijo Copyright © 2013 Asuka Kamijo

Upload: asuka-kamijo

Post on 28-May-2015

708 views

Category:

Documents


5 download

DESCRIPTION

社内寄りの勉強会資料 その2 Gitの説明と、簡単な操作のアウトラインについて。 30分~45分程度の資料。

TRANSCRIPT

Page 1: クリアな履歴とコードために  -Git 入門編-

クリアな履歴とコードのために -Git 入門編-

Asuka Kamijo

Copyright © 2013 Asuka Kamijo

Page 2: クリアな履歴とコードために  -Git 入門編-

バージョン管理について その前に

Copyright © 2013 Asuka Kamijo

Page 3: クリアな履歴とコードために  -Git 入門編-

簡単に

第3世代

個別のリポジトリ 例:Git

第2世代

共有リポジトリ 例:SVN

第1世代

フォルダ分け・台帳管理 例:Excel

Copyright © 2013 Asuka Kamijo

Page 4: クリアな履歴とコードために  -Git 入門編-

GITとは? 本題

Copyright © 2013 Asuka Kamijo

Page 5: クリアな履歴とコードために  -Git 入門編-

Gitとは? • Git(ギット)はプログラムなどのソースコード管理を行う分散型バージョン管理システム。

• 動作速度に重点が置かれている。 • Linuxカーネルのソースコード管理を目的として、リーナス・トーバルズによって開発された。

• Gitではワーキングディレクトリが、ローカルリポジトリの全履歴を含んでいるため、中央サーバへのアクセスが不可能な状態であってもリビジョン間の履歴を調査することができる。

[出典]Wikipedia http://ja.wikipedia.org/wiki/Git

Copyright © 2013 Asuka Kamijo

Page 6: クリアな履歴とコードために  -Git 入門編-

Gitとは?

Copyright © 2013 Asuka Kamijo

つまり?

Page 7: クリアな履歴とコードために  -Git 入門編-

Gitとは?

Copyright © 2013 Asuka Kamijo

master

Jane Bob

Bob Jane

On Line Off Line

Page 8: クリアな履歴とコードために  -Git 入門編-

Gitとは?

Copyright © 2013 Asuka Kamijo

master

Jane Bob

Bob Jane

オフラインでも commit出来る。

On Line Off Line

Page 9: クリアな履歴とコードために  -Git 入門編-

Gitとは?

Copyright © 2013 Asuka Kamijo

master

Jane Bob

Bob Jane

diffが取りやすく、 取り込みやすい。

On Line Off Line

Page 10: クリアな履歴とコードために  -Git 入門編-

Gitとは?

Copyright © 2013 Asuka Kamijo

master

Jane Bob

Bob Jane

全員の作業をmergeできる。 同じファイルであっても!

On Line Off Line

Page 11: クリアな履歴とコードために  -Git 入門編-

Gitとは?

Copyright © 2013 Asuka Kamijo

master

Jane Bob

Bob Jane

On Line Off Line

オフラインでも commit出来る。

diffが取りやすく、 取り込みやすい。

そして、 素早い!

全員の作業をmergeできる。 同じファイルであっても!

Page 12: クリアな履歴とコードために  -Git 入門編-

メリットとデメリット もちろん美味しい話ばかりじゃない

Copyright © 2013 Asuka Kamijo

Page 13: クリアな履歴とコードために  -Git 入門編-

Gitのメリット

• 使い勝手のいいWebサービスがある – GitHub – SourceTree – BitBacket

• リポジトリの作成や更新が速い • 更新したいときに、ネットワークにつながっている必要がない

Copyright © 2013 Asuka Kamijo

Page 14: クリアな履歴とコードために  -Git 入門編-

Gitのデメリット

• 初期導入に半日程度の学習期間が必要 – Gitのデータ構造 – Gitの仕組み – 操作の理解

• CUI操作が多いため、敷居が高く感じる • 使い勝手のいいWebサービスはタダではない

Copyright © 2013 Asuka Kamijo

Page 15: クリアな履歴とコードために  -Git 入門編-

GIT開発のいろは リポジトリの作成~マージまで

Copyright © 2013 Asuka Kamijo

Page 16: クリアな履歴とコードために  -Git 入門編-

まず、自分のリポジトリを作る

Copyright © 2013 Asuka Kamijo

master

Jane Bob

Bob Jane

On Line Off Line

> git init

Page 17: クリアな履歴とコードために  -Git 入門編-

オンラインのリポジトリを複製する

Copyright © 2013 Asuka Kamijo

master

Jane Bob

Bob Jane

On Line Off Line

> git clone [URL]

Page 18: クリアな履歴とコードために  -Git 入門編-

更新対象を決める

Copyright © 2013 Asuka Kamijo

master

Jane Bob

Bob Jane

On Line Off Line

> git add [file]

Page 19: クリアな履歴とコードために  -Git 入門編-

自分のリポジトリに更新する

Copyright © 2013 Asuka Kamijo

master

Jane Bob

Bob Jane

On Line Off Line

> git commit -m “first commit”

Page 20: クリアな履歴とコードために  -Git 入門編-

更新内容をオンラインへ反映する

Copyright © 2013 Asuka Kamijo

master

Jane Bob

Bob Jane

On Line Off Line

> git push origin Bob

Page 21: クリアな履歴とコードために  -Git 入門編-

他の人の更新内容を取ってくる

Copyright © 2013 Asuka Kamijo

master

Jane Bob

Bob Jane

On Line Off Line

> git fetch origin Bob

Page 22: クリアな履歴とコードために  -Git 入門編-

他の人の更新内容を反映する

Copyright © 2013 Asuka Kamijo

master

Jane Bob

Bob Jane

On Line Off Line

> git merge origin Bob

Page 23: クリアな履歴とコードために  -Git 入門編-

Copyright © 2013 Asuka Kamijo

ね? 簡単でしょう?

Page 24: クリアな履歴とコードために  -Git 入門編-

GITを社内で使えるようにするには 支援ツールや課題

Copyright © 2013 Asuka Kamijo

Page 25: クリアな履歴とコードために  -Git 入門編-

イチオシはGitHub

https://github.com/

Page 26: クリアな履歴とコードために  -Git 入門編-

GitHubとは?

• オープンソースのWebサービスです • Gitの作業環境を提供してくれます • コードや画像の差分を検出してくれます • それぞれの更新でDiffがとられ、行単位、画像の位置単位で確認できます

• 更新に対して、誰でもコメントが付けられます • fetchして欲しい時に周知ができます

– [pull request]

Copyright © 2013 Asuka Kamijo

Page 27: クリアな履歴とコードために  -Git 入門編-

補足:何故 pull requestなの?

Copyright © 2013 Asuka Kamijo

master

Jane Bob

Bob Jane

On Line Off Line

> git pull origin Bob:Jane

Page 28: クリアな履歴とコードために  -Git 入門編-

更新した内容を周知する

Copyright © 2013 Asuka Kamijo

master

Jane Bob

Bob Jane

On Line Off Line

pull request

コード レビューや 取り込み

対象の確認

Page 29: クリアな履歴とコードために  -Git 入門編-

GitHubの機能説明

https://github.com/

Page 30: クリアな履歴とコードために  -Git 入門編-

すぐやろう! でも・・・

• お金かかるんでしょ? – はい。10名の非公開編集者、20リポジトリで月額 $22。 – Stashというサービスが、社内限定で構築できるGitHubライクな環境を提供しています。

こちらは買い切りで、10ユーザ $10, 50ユーザ $3,300。 – http://www.atlassian.com/ja/software/stash/overview

• CUIはちょっと・・・ – Windows版のGitHub用GUIは結構優秀です – http://windows.github.com/

Copyright © 2013 Asuka Kamijo

Page 31: クリアな履歴とコードために  -Git 入門編-

参考文献 本資料の作成に当たって参考にした文献

Copyright © 2013 Asuka Kamijo

Page 32: クリアな履歴とコードために  -Git 入門編-

http://www.amazon.co.jp/dp/427406767X

入門git Travis Swicegood (著), でびあんぐる (翻訳) オーム社

Page 33: クリアな履歴とコードために  -Git 入門編-

質疑・応答 気になること、気付いたことを教えて下さい

Copyright © 2013 Asuka Kamijo