クリアな履歴とコードために -git 入門編-
DESCRIPTION
社内寄りの勉強会資料 その2 Gitの説明と、簡単な操作のアウトラインについて。 30分~45分程度の資料。TRANSCRIPT
クリアな履歴とコードのために -Git 入門編-
Asuka Kamijo
Copyright © 2013 Asuka Kamijo
バージョン管理について その前に
Copyright © 2013 Asuka Kamijo
簡単に
第3世代
個別のリポジトリ 例:Git
第2世代
共有リポジトリ 例:SVN
第1世代
フォルダ分け・台帳管理 例:Excel
Copyright © 2013 Asuka Kamijo
GITとは? 本題
Copyright © 2013 Asuka Kamijo
Gitとは? • Git(ギット)はプログラムなどのソースコード管理を行う分散型バージョン管理システム。
• 動作速度に重点が置かれている。 • Linuxカーネルのソースコード管理を目的として、リーナス・トーバルズによって開発された。
• Gitではワーキングディレクトリが、ローカルリポジトリの全履歴を含んでいるため、中央サーバへのアクセスが不可能な状態であってもリビジョン間の履歴を調査することができる。
[出典]Wikipedia http://ja.wikipedia.org/wiki/Git
Copyright © 2013 Asuka Kamijo
Gitとは?
Copyright © 2013 Asuka Kamijo
つまり?
Gitとは?
Copyright © 2013 Asuka Kamijo
master
Jane Bob
Bob Jane
On Line Off Line
Gitとは?
Copyright © 2013 Asuka Kamijo
master
Jane Bob
Bob Jane
オフラインでも commit出来る。
On Line Off Line
Gitとは?
Copyright © 2013 Asuka Kamijo
master
Jane Bob
Bob Jane
diffが取りやすく、 取り込みやすい。
On Line Off Line
Gitとは?
Copyright © 2013 Asuka Kamijo
master
Jane Bob
Bob Jane
全員の作業をmergeできる。 同じファイルであっても!
On Line Off Line
Gitとは?
Copyright © 2013 Asuka Kamijo
master
Jane Bob
Bob Jane
On Line Off Line
オフラインでも commit出来る。
diffが取りやすく、 取り込みやすい。
そして、 素早い!
全員の作業をmergeできる。 同じファイルであっても!
メリットとデメリット もちろん美味しい話ばかりじゃない
Copyright © 2013 Asuka Kamijo
Gitのメリット
• 使い勝手のいいWebサービスがある – GitHub – SourceTree – BitBacket
• リポジトリの作成や更新が速い • 更新したいときに、ネットワークにつながっている必要がない
Copyright © 2013 Asuka Kamijo
Gitのデメリット
• 初期導入に半日程度の学習期間が必要 – Gitのデータ構造 – Gitの仕組み – 操作の理解
• CUI操作が多いため、敷居が高く感じる • 使い勝手のいいWebサービスはタダではない
Copyright © 2013 Asuka Kamijo
GIT開発のいろは リポジトリの作成~マージまで
Copyright © 2013 Asuka Kamijo
まず、自分のリポジトリを作る
Copyright © 2013 Asuka Kamijo
master
Jane Bob
Bob Jane
On Line Off Line
> git init
オンラインのリポジトリを複製する
Copyright © 2013 Asuka Kamijo
master
Jane Bob
Bob Jane
On Line Off Line
> git clone [URL]
更新対象を決める
Copyright © 2013 Asuka Kamijo
master
Jane Bob
Bob Jane
On Line Off Line
> git add [file]
自分のリポジトリに更新する
Copyright © 2013 Asuka Kamijo
master
Jane Bob
Bob Jane
On Line Off Line
> git commit -m “first commit”
更新内容をオンラインへ反映する
Copyright © 2013 Asuka Kamijo
master
Jane Bob
Bob Jane
On Line Off Line
> git push origin Bob
他の人の更新内容を取ってくる
Copyright © 2013 Asuka Kamijo
master
Jane Bob
Bob Jane
On Line Off Line
> git fetch origin Bob
他の人の更新内容を反映する
Copyright © 2013 Asuka Kamijo
master
Jane Bob
Bob Jane
On Line Off Line
> git merge origin Bob
Copyright © 2013 Asuka Kamijo
ね? 簡単でしょう?
GITを社内で使えるようにするには 支援ツールや課題
Copyright © 2013 Asuka Kamijo
GitHubとは?
• オープンソースのWebサービスです • Gitの作業環境を提供してくれます • コードや画像の差分を検出してくれます • それぞれの更新でDiffがとられ、行単位、画像の位置単位で確認できます
• 更新に対して、誰でもコメントが付けられます • fetchして欲しい時に周知ができます
– [pull request]
Copyright © 2013 Asuka Kamijo
補足:何故 pull requestなの?
Copyright © 2013 Asuka Kamijo
master
Jane Bob
Bob Jane
On Line Off Line
> git pull origin Bob:Jane
更新した内容を周知する
Copyright © 2013 Asuka Kamijo
master
Jane Bob
Bob Jane
On Line Off Line
pull request
コード レビューや 取り込み
対象の確認
すぐやろう! でも・・・
• お金かかるんでしょ? – はい。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
参考文献 本資料の作成に当たって参考にした文献
Copyright © 2013 Asuka Kamijo
http://www.amazon.co.jp/dp/427406767X
入門git Travis Swicegood (著), でびあんぐる (翻訳) オーム社
質疑・応答 気になること、気付いたことを教えて下さい
Copyright © 2013 Asuka Kamijo