SlideShare a Scribd company logo
1 of 33
Download to read offline
クリアな履歴とコードのために
           -Git 入門編-
                                Asuka Kamijo




Copyright © 2013 Asuka Kamijo
その前に

    バージョン管理について


Copyright © 2013 Asuka Kamijo
簡単に
                                第1世代

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


                                第2世代

          共有リポジトリ                      例:SVN


                                第3世代

        個別のリポジトリ                       例:Git
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とは?
                                  master


                         Bob               Jane
                                                  On Line
                                                  Off Line




                         Bob               Jane




Copyright © 2013 Asuka Kamijo
Gitとは?
                                  master


                         Bob                Jane
                                                   On Line
                                                   Off Line




                         Bob                Jane

                                   オフラインでも
                                   commit出来る。
Copyright © 2013 Asuka Kamijo
Gitとは?
                                   master


                         Bob                  Jane
                                                     On Line
                                                     Off Line

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



                         Bob                  Jane




Copyright © 2013 Asuka Kamijo
Gitとは?
全員の作業をmergeできる。
同じファイルであっても!                      master


                         Bob               Jane
                                                  On Line
                                                  Off Line




                         Bob               Jane




Copyright © 2013 Asuka Kamijo
Gitとは?
全員の作業をmergeできる。
同じファイルであっても!                       master            そして、
                                                     素早い!
                         Bob                  Jane
                                                       On Line
                                                       Off Line

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



                         Bob                  Jane

                                     オフラインでも
                                     commit出来る。
Copyright © 2013 Asuka Kamijo
もちろん美味しい話ばかりじゃない

    メリットとデメリット


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
まず、自分のリポジトリを作る
                                     master


                         Bob                  Jane
                                                     On Line
                                                     Off Line




                                > git init


                         Bob                  Jane




Copyright © 2013 Asuka Kamijo
オンラインのリポジトリを複製する
                                    master


                         Bob                        Jane
                                                           On Line
                                                           Off Line

                                > git clone [URL]




                         Bob                        Jane




Copyright © 2013 Asuka Kamijo
更新対象を決める
                                     master


                         Bob                       Jane
                                                          On Line
                                                          Off Line




                                > git add [file]


                         Bob                       Jane




Copyright © 2013 Asuka Kamijo
自分のリポジトリに更新する
                                master


                         Bob                   Jane
                                                                   On Line
                                                                   Off Line




                         Bob                   Jane


                                  > git commit -m “first commit”
Copyright © 2013 Asuka Kamijo
更新内容をオンラインへ反映する
                                       master


                         Bob                            Jane
                                                               On Line
                                                               Off Line


                                > git push origin Bob



                         Bob                            Jane




Copyright © 2013 Asuka Kamijo
他の人の更新内容を取ってくる
                                master


                         Bob                    Jane
                                                           On Line
                                                           Off Line




                         Bob                    Jane


                                  > git fetch origin Bob
Copyright © 2013 Asuka Kamijo
他の人の更新内容を反映する
                                master


                         Bob             Jane
                                                                   On Line
                                                                   Off Line




                         Bob             Jane


                                                > git merge origin Bob
Copyright © 2013 Asuka Kamijo
ね? 簡単でしょう?




Copyright © 2013 Asuka Kamijo
支援ツールや課題

    GITを社内で使えるようにするには


Copyright © 2013 Asuka Kamijo
イチオシはGitHub
 https://github.com/
GitHubとは?
  • オープンソースのWebサービスです
  • Gitの作業環境を提供してくれます
  • コードや画像の差分を検出してくれます
  • それぞれの更新でDiffがとられ、行単位、画
    像の位置単位で確認できます
  • 更新に対して、誰でもコメントが付けられます
  • fetchして欲しい時に周知ができます
      – [pull request]
Copyright © 2013 Asuka Kamijo
補足:何故 pull requestなの?
                                master
                                                > git pull origin
                                                Bob:Jane
                         Bob             Jane
                                                        On Line
                                                        Off Line




                         Bob             Jane




Copyright © 2013 Asuka Kamijo
更新した内容を周知する
                                         master


                         Bob                        Jane
                                                           On Line
                                                           Off Line
                          pull request

                                              コード
                                            レビューや
                                             取り込み
                                            対象の確認
                         Bob                        Jane




Copyright © 2013 Asuka Kamijo
GitHubの機能説明
 https://github.com/
すぐやろう! でも・・・
  • お金かかるんでしょ?
      – はい。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
入門git
Travis Swicegood (著), でびあんぐる (翻訳) オーム社




    http://www.amazon.co.jp/dp/427406767X
気になること、気付いたことを教えて下さい

    質疑・応答


Copyright © 2013 Asuka Kamijo

More Related Content

Viewers also liked

テストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おうテストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おうSayaka Nakano
 
お絵描きコミュニケーション
お絵描きコミュニケーションお絵描きコミュニケーション
お絵描きコミュニケーションSayaka Nakano
 
Testing processqualifylevel 2009
Testing processqualifylevel 2009Testing processqualifylevel 2009
Testing processqualifylevel 2009Shinsuke Matsuki
 
はじめよう!レビューのいろは
はじめよう!レビューのいろははじめよう!レビューのいろは
はじめよう!レビューのいろはscarletplover
 
TOCfEちゃんと考えるから4つのなぜへ
TOCfEちゃんと考えるから4つのなぜへTOCfEちゃんと考えるから4つのなぜへ
TOCfEちゃんと考えるから4つのなぜへ正 竹中
 
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateテスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateKinji Akemine
 
幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろう幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろうscarletplover
 
英語なんてこわくない~英語ドキュメントを読んでみよう #wacate
英語なんてこわくない~英語ドキュメントを読んでみよう #wacate英語なんてこわくない~英語ドキュメントを読んでみよう #wacate
英語なんてこわくない~英語ドキュメントを読んでみよう #wacateKazuhiro Takehana
 
わりとディープ?同値分割↔境界値分析
わりとディープ?同値分割↔境界値分析わりとディープ?同値分割↔境界値分析
わりとディープ?同値分割↔境界値分析scarletplover
 
ツール利用でTOC思考プロセスを楽々実践 問題解決入門
ツール利用でTOC思考プロセスを楽々実践 問題解決入門ツール利用でTOC思考プロセスを楽々実践 問題解決入門
ツール利用でTOC思考プロセスを楽々実践 問題解決入門Hisashi Nakatsuyama
 
質問されない資料にするための4ステップ
質問されない資料にするための4ステップ質問されない資料にするための4ステップ
質問されない資料にするための4ステップAsuka (飛鳥) Kamijo (上條)
 
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOKKotaro Ogino
 
テスト自動化のパターンと実践
テスト自動化のパターンと実践テスト自動化のパターンと実践
テスト自動化のパターンと実践Hiroshi Maekawa
 
概説 テスト分析
概説 テスト分析概説 テスト分析
概説 テスト分析崇 山﨑
 
1時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac20141時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac2014Kazuhiro Suzuki
 

Viewers also liked (20)

テストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おうテストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おう
 
Prezentation boot camp #01
Prezentation boot camp #01Prezentation boot camp #01
Prezentation boot camp #01
 
より素敵なスライドを迎えよう
より素敵なスライドを迎えようより素敵なスライドを迎えよう
より素敵なスライドを迎えよう
 
お絵描きコミュニケーション
お絵描きコミュニケーションお絵描きコミュニケーション
お絵描きコミュニケーション
 
一段深い心で人と関わろう
一段深い心で人と関わろう一段深い心で人と関わろう
一段深い心で人と関わろう
 
TOCfEを職場で使って思ったこと
TOCfEを職場で使って思ったことTOCfEを職場で使って思ったこと
TOCfEを職場で使って思ったこと
 
Wacate2015summer_report
Wacate2015summer_reportWacate2015summer_report
Wacate2015summer_report
 
Testing processqualifylevel 2009
Testing processqualifylevel 2009Testing processqualifylevel 2009
Testing processqualifylevel 2009
 
はじめよう!レビューのいろは
はじめよう!レビューのいろははじめよう!レビューのいろは
はじめよう!レビューのいろは
 
TOCfEちゃんと考えるから4つのなぜへ
TOCfEちゃんと考えるから4つのなぜへTOCfEちゃんと考えるから4つのなぜへ
TOCfEちゃんと考えるから4つのなぜへ
 
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateテスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
 
幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろう幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろう
 
英語なんてこわくない~英語ドキュメントを読んでみよう #wacate
英語なんてこわくない~英語ドキュメントを読んでみよう #wacate英語なんてこわくない~英語ドキュメントを読んでみよう #wacate
英語なんてこわくない~英語ドキュメントを読んでみよう #wacate
 
わりとディープ?同値分割↔境界値分析
わりとディープ?同値分割↔境界値分析わりとディープ?同値分割↔境界値分析
わりとディープ?同値分割↔境界値分析
 
ツール利用でTOC思考プロセスを楽々実践 問題解決入門
ツール利用でTOC思考プロセスを楽々実践 問題解決入門ツール利用でTOC思考プロセスを楽々実践 問題解決入門
ツール利用でTOC思考プロセスを楽々実践 問題解決入門
 
質問されない資料にするための4ステップ
質問されない資料にするための4ステップ質問されない資料にするための4ステップ
質問されない資料にするための4ステップ
 
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
 
テスト自動化のパターンと実践
テスト自動化のパターンと実践テスト自動化のパターンと実践
テスト自動化のパターンと実践
 
概説 テスト分析
概説 テスト分析概説 テスト分析
概説 テスト分析
 
1時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac20141時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac2014
 

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