Upload
-
View
2.969
Download
2
Embed Size (px)
Citation preview
Visual Studio 2015 での Git 利用
2015年10月26日(月) 14:35-15:25
鉄人から学ぶ! Visual Studio 2015 によるテスト・リファクタリング
Microsoft MVP for Visual Studio and Development Technologies
関 満徳@fullvirtue
Copyright © fullvirtue. All rights reserved.
本日の概要本日のセッションの概要について確認していきます。
Copyright © @fullvirtue. All rights reserved. 2
本日の概要(1/1)
本セッションについて(1/1)
概要
– 「Visual Studio 2015でgitはどう使うの?」「gitって何?」分散型バージョン管理システム(git)における、プルリクエスト主体のアジャイルなチケット駆動開発について、実案件での経験を踏まえてお話します。
対象者
– Visual Studio 2015 での Git 利用について知りたい方
– 分散型バージョン管理システム(git)について知りたい方
Copyright © fullvirtue. All rights reserved. 3
Visual Studio 2015 での Git 利用
おことわり(1/3)
今回の資料について(1/3)
今回の資料は、以下を参考にしています。私自身のオリジナルはほとんどありませんので、ご了承ください。
– デザイナのためのGit入門
» http://www.slideshare.net/dsuket/git-16343460
– サルでもわかるGit入門
» http://www.backlog.jp/git-guide/
– 知らないと現場で困るバージョン管理システムの基礎知識
» http://www.atmarkit.co.jp/ait/articles/1305/20/news015.html
– バージョン管理とは : 集中型 vs. DVCS
» http://japan.blogs.atlassian.com/2012/11/version-control-centralized-dvcs/
Copyright © fullvirtue. All rights reserved. 4
おことわり(2/3)
今回の資料について(2/3)
今回の資料は、以下を参考にしています。私自身のオリジナルはほとんどありませんので、ご了承ください。
– A successful Git branching model
» [Eng]http://nvie.com/posts/a-successful-git-branching-model/
» [日本語訳] http://keijinsonyaban.blogspot.jp/2010/10/successful-git-branching-model.html
– キャスレーの社内開発で利用するgitのブランチモデルとかPull Requestの簡単な解説とか
» http://www.casleyconsulting.co.jp/blog-engineer/git/キャスレーの社内開発で利用するgitのブランチモ/
Copyright © fullvirtue. All rights reserved. 5
おことわり(3/3)
今回の資料について(3/3)
今回の資料は、以下を参考にしています。私自身のオリジナルはほとんどありませんので、ご了承ください。
– SourceTreeで始めよう! Gitへの乗り換え指南
» http://www.slideshare.net/kekyo/sourcetree-git
– Announcing Git-LFS on all VSO Git repos
» http://blogs.msdn.com/b/visualstudioalm/archive/2015/10/01/announcing-git-lfs-on-all-vso-git-repos.aspx
– Gitを大容量バイナリファイルへと拡張するGit Large File Storage
» http://www.infoq.com/jp/news/2015/04/github-large-file-storage
– Visual Studio OnlineでGit LFSを使ってみた
» http://opcdiary.net/?p=30465
Copyright © fullvirtue. All rights reserved. 6
本日お話すること(1/1)
アジェンダ(1/1)
本日の概要
Visual Studio 2015 + Git で開発を始めるには
Git の考え方とポイント
まとめ
Copyright © POStudy (プロダクトオーナーシップ勉強会). All rights reserved. 7
本日お話すること(1/1)
アジェンダ(1/1)
本日の概要
Visual Studio 2015 + Git で開発を始めるには
Git の考え方とポイント
まとめ
Copyright © POStudy (プロダクトオーナーシップ勉強会). All rights reserved. 8
Visual Studio 2015 + Git で開発を始めるには
手順を交えてご紹介いたします。
・ Visual Studio 2015 + Git + Visual Studio Online
Copyright © fullvirtue. All rights reserved. 9
Visual Studio 2015 + Git で開発を始めるには
一番最初に考えること
Git リポジトリの管理サーバーをどこにするか
候補1: Visual Studio Online
– http://visualstudioonline.com/
候補2: GitHub
– https://github.com/
候補3: Bitbucket
– https://bitbucket.org/
Copyright © fullvirtue. All rights reserved. 10
Visual Studio 2015 + Git で開発を始めるには
一番最初に考えること
Git リポジトリの管理サーバーをどこにするか
候補1: Visual Studio Online
– http://visualstudioonline.com/
候補2: GitHub
– https://github.com/
候補3: Bitbucket
– https://bitbucket.org/
Copyright © fullvirtue. All rights reserved. 11
今日はこちらの手順を紹介します!
Visual Studio 2015 + Git で開発を始めるには
Visual Studio Online の利用を開始
Visual Studio Online へアクセスして利用を開始
– http://visualstudioonline.com/
Copyright © fullvirtue. All rights reserved. 12
Visual Studio 2015 + Git で開発を始めるには
Visual Studio Online 上でチームプロジェクトを作成
Copyright © fullvirtue. All rights reserved. 13
TFSUG1026Demo
Scrum
Git
チェック
Visual Studio 2015 + Git で開発を始めるには
Visual Studio Online 上にチームプロジェクトが作成
Copyright © fullvirtue. All rights reserved. 14
チームプロジェクトが作成されたことを確認
Visual Studio 2015 + Git で開発を始めるには
Home 画面に移動
Copyright © fullvirtue. All rights reserved. 15
Home をクリック
Visual Studio 2015 + Git で開発を始めるには
Home 画面に移動
Copyright © fullvirtue. All rights reserved. 16
× をクリック
Visual Studio 2015 + Git で開発を始めるには
Visual Studio 2015 に関連づけ
Copyright © fullvirtue. All rights reserved. 17
Open in Visual Studio をクリック
Visual Studio 2015 + Git で開発を始めるには
Visual Studio 2015 に関連づけ
Copyright © fullvirtue. All rights reserved. 18
アプリケーションの移動 をクリック
Visual Studio 2015 + Git で開発を始めるには
Visual Studio 2015 からチームプロジェクトを開く
Copyright © fullvirtue. All rights reserved. 19
緑色のアイコン(接続の管理)をクリック
Visual Studio 2015 + Git で開発を始めるには
Visual Studio 2015 からチームプロジェクトを開く
Copyright © fullvirtue. All rights reserved. 20
Visual Studio Online の 接続 をクリック
Visual Studio 2015 + Git で開発を始めるには
Visual Studio 2015 からチームプロジェクトを開く
Copyright © fullvirtue. All rights reserved. 21
接続 をクリック
チームプロジェクトにチェックをつける
Visual Studio 2015 + Git で開発を始めるには
Visual Studio 2015 からチームプロジェクトを開く
Copyright © fullvirtue. All rights reserved. 22
チームプロジェクトをダブルクリック
Visual Studio 2015 + Git で開発を始めるには
Visual Studio 2015 からチームプロジェクトを開く
Copyright © fullvirtue. All rights reserved. 23
このリポジトリを複製 をクリック
※GitでいうCloneの操作と同じですサーバー上にあるソースコード群を自分のパソコン上にコピーします
Visual Studio 2015 + Git で開発を始めるには
Visual Studio 2015 からチームプロジェクトを開く
Copyright © fullvirtue. All rights reserved. 24
複製 をクリック
Visual Studio 2015 + Git で開発を始めるには
チームプロジェクト上で開発を開始
Copyright © fullvirtue. All rights reserved. 25
これですべての準備が完了しました!あとは開発を始めるだけです!
ソリューションの「新規作成」をクリック
本日お話すること(1/1)
アジェンダ(1/1)
本日の概要
Visual Studio 2015 + Git で開発を始めるには
Git の考え方とポイント
まとめ
Copyright © POStudy (プロダクトオーナーシップ勉強会). All rights reserved. 26
Git の考え方とポイントGitの考え方とポイントについてご紹介いたします。
Copyright © fullvirtue. All rights reserved. 27
Git の考え方とポイント
よくあるバージョン管理の例(1/7)
ファイル名で管理
Copyright © fullvirtue. All rights reserved. 28デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
Git の考え方とポイント
よくあるバージョン管理の例(2/7)
ファイル名で管理
Copyright © fullvirtue. All rights reserved. 29デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
どれが最新?
Git の考え方とポイント
よくあるバージョン管理の例(3/7)
共有フォルダで管理
Copyright © fullvirtue. All rights reserved. 30デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
共有フォルダ
index.html
Git の考え方とポイント
よくあるバージョン管理の例(4/7)
共有フォルダで管理
Copyright © fullvirtue. All rights reserved. 31デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
共有フォルダ
index.html
更新
Git の考え方とポイント
よくあるバージョン管理の例(5/7)
共有フォルダで管理
Copyright © fullvirtue. All rights reserved. 32デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
共有フォルダ
index.html
更新 更新
Git の考え方とポイント
よくあるバージョン管理の例(6/7)
共有フォルダで管理
Copyright © fullvirtue. All rights reserved. 33デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
共有フォルダ
index.html
更新 更新
衝突
Git の考え方とポイント
よくあるバージョン管理の例(7/7)
共有フォルダで管理
Copyright © fullvirtue. All rights reserved. 34デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
あれ、上書きしちゃった…
共有フォルダ
index.html
更新 更新
衝突
Git の考え方とポイント
バージョン管理システムとは(1/1)
ファイルに対して「誰が」「いつ」「何を変更したか」というような情報を記録
過去のある時点の状態を復元したり変更内容の差分を表示できるようにするシステム
Copyright © fullvirtue. All rights reserved. 35知らないと現場で困るバージョン管理システムの基礎知識 http://www.atmarkit.co.jp/ait/articles/1305/20/news015.html
Git の考え方とポイント
バージョン管理システムを使うと(1/1)
すぐ前の状態に戻せる
複数人で同じファイルを更新しても大丈夫
変更履歴が観れる
リリース管理も簡単
Copyright © fullvirtue. All rights reserved. 36デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
Git の考え方とポイント
なぜ開発の現場でバージョン管理を使うのか(1/1)
1. アジリティを高める» もし開発中にソフトウェアにバグを埋め込んでしまっても、
問題の発生する以前の状態へ簡単に戻せる
2. 素早い開発が可能に» ある環境でバグなどの問題が発生した場合には、
過去にさかのぼって変更の差分を確認することで原因を分析したり、別に同じ環境を作って同じ問題が再現するかどうか調査できる
» ソフトウェアへの影響が大きな“変更”や試験的な機能の追加を安心して行えるので、結果として素早い開発が可能になる
3. 余計な情報でコードが肥大しない» 変更内容はバージョン管理システムに記録されるので、変更前の内容を
コメントアウトしてコード中に残すようなことをする必要はない
Copyright © fullvirtue. All rights reserved. 37知らないと現場で困るバージョン管理システムの基礎知識 http://www.atmarkit.co.jp/ait/articles/1305/20/news015.html
Git の考え方とポイント
バージョン管理システムの方式(1/9)
『集中管理方式』
– プロジェクトの単一の “中心” コピーがどこかに存在
» たいていはサーバー上であることが多い
– プログラマーはこの中心コピーに変更を “コミット”
» 単純に中央システムにその変更を記録することを意味
– 代表的な集中型バージョン管理システム
» TFVC(Team Foundation Version Control) ←TFS/VSOサポート
» CVS(Concurrent Versions System)
» SVN(Subversion)
『分散管理方式』
Copyright © fullvirtue. All rights reserved. 38バージョン管理とは : 集中型 vs. DVCS http://japan.blogs.atlassian.com/2012/11/version-control-centralized-dvcs/
Git の考え方とポイント
バージョン管理システムの方式(2/9)
『集中管理方式』
『分散管理方式』
– プロジェクトのファイルの全バージョンを保管するための中央サーバーを必要としない
– 各開発者はレポジトリのコピーを “クローン” し、自身のハード ドライブ上にそのプロジェクトの 完全な 履歴を持つ
– コミット時、差分の保存ではなく、ファイル全体をそのまま圧縮保存
– 代表的な分散型バージョン管理システム
» Git ←TFS/VSOサポート
» Mercurial
Copyright © fullvirtue. All rights reserved. 39バージョン管理とは : 集中型 vs. DVCS http://japan.blogs.atlassian.com/2012/11/version-control-centralized-dvcs/
Git の考え方とポイント
バージョン管理システムの方式(3/9)
『集中管理方式』
『分散管理方式』
Copyright © fullvirtue. All rights reserved. 40デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
Git の考え方とポイント
バージョン管理システムの方式(4/9)
『集中管理方式』
『分散管理方式』
Copyright © fullvirtue. All rights reserved. 41
編集中 編集不可
編集不可編集不可
編集中 編集中
編集中編集中
デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
Git の考え方とポイント
バージョン管理システムの方式(5/9)
『集中管理方式』
『分散管理方式』
Copyright © fullvirtue. All rights reserved. 42
サーバー上のリポジトリ
ローカルファイルの編集
リモートリポジトリ
ローカルファイルの編集
ローカルリポジトリ
デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
Git の考え方とポイント
バージョン管理システムの方式(6/9)
『集中管理方式』
『分散管理方式』
Copyright © fullvirtue. All rights reserved. 43
サーバー上のリポジトリ
チェックアウト & ファイルロック
ローカルファイルの編集
リモートリポジトリ
ローカルファイルの編集
ローカルリポジトリ
デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
Git の考え方とポイント
バージョン管理システムの方式(7/9)
『集中管理方式』
『分散管理方式』
Copyright © fullvirtue. All rights reserved. 44
サーバー上のリポジトリ
チェックアウト & ファイルロック
コミット & ファイルロック解除ローカルファイルの編集
リモートリポジトリ
ローカルファイルの編集
ローカルリポジトリ
デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
Git の考え方とポイント
バージョン管理システムの方式(8/9)
『集中管理方式』
『分散管理方式』
Copyright © fullvirtue. All rights reserved. 45
サーバー上のリポジトリ
チェックアウト & ファイルロック
コミット & ファイルロック解除ローカルファイルの編集
リモートリポジトリ
ブランチ切替
ローカルファイルの編集
ローカルリポジトリ
クローン or プル
デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
Git の考え方とポイント
バージョン管理システムの方式(9/9)
『集中管理方式』
『分散管理方式』
Copyright © fullvirtue. All rights reserved. 46
サーバー上のリポジトリ
チェックアウト & ファイルロック
コミット & ファイルロック解除ローカルファイルの編集
リモートリポジトリ
ブランチ切替
ローカルファイルの編集
ローカルリポジトリ
マージ or コミット プルリクエストor プッシュ
デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
クローン or プル
Git の考え方とポイント
分散管理方式のメリット(1/2)
手軽にコミットできる
オフラインでもコミット出来る
コミットが増えると履歴が増える
履歴が増えると戻すのが簡単
Copyright © fullvirtue. All rights reserved. 47デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
Git の考え方とポイント
分散管理方式のメリット(2/2)
ブランチ・マージが便利
別バージョンを作るのが簡単
別バージョンをマージするのが簡単
Copyright © fullvirtue. All rights reserved. 48デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
Git の考え方とポイント
何をバージョン管理するのか(1/1)
ある時点のソフトウェア・環境を構築するために必要なものすべて
– ソフトウェアのソースコード
– ビルドスクリプト
– データベースのスキーマ定義、マイグレーションの SQL、初期データ
– 環境構築用の設定ファイル・スクリプト
Copyright © fullvirtue. All rights reserved. 49知らないと現場で困るバージョン管理システムの基礎知識 http://www.atmarkit.co.jp/ait/articles/1305/20/news015.html
Git の考え方とポイント
何をバージョン管理してはいけないのか(1/1)
バージョン管理する必要がない、共有してはいけないファイル
– ソースコードをコンパイルしてできたバイナリファイル
– 秘密鍵ファイルなどの他人に見せてはいけないもの
Copyright © fullvirtue. All rights reserved. 50知らないと現場で困るバージョン管理システムの基礎知識 http://www.atmarkit.co.jp/ait/articles/1305/20/news015.html
Git の考え方とポイント
Gitが不得意なこと(1/1)
バイナリファイルの管理が苦手
– 遅くなる
– 差分が取れない
Copyright © fullvirtue. All rights reserved. 51デザイナのためのGit入門 http://www.slideshare.net/dsuket/git-16343460
Git の考え方とポイント
[参考]Gitで大容量バイナリファイルを扱いたい場合 (1/1)
Git Large File Storage(Git-LFS)
– Gitは、デフォルトでは、バイナリ資源のすべてのバージョンを圧縮して保存しようとする
» 数が多い場合、これが最良な手段でないことは明らか
– Gitワークフロー内での大容量のバイナリファイル組込みの改善を目的
» オーディオサンプル
» データセット
» グラフィック
» ビデオなど
– GitリポジトリをClone後、git-lfsの各種コマンドを使って利用開始
» 参考) http://opcdiary.net/?p=30465
Copyright © fullvirtue. All rights reserved. 52Gitを大容量バイナリファイルへと拡張するGit Large File http://www.infoq.com/jp/news/2015/04/github-large-file-storage
Git の考え方とポイント
ブランチ・タグを中心としたソフトウェア開発(1/2)
ブランチとは
– 履歴の流れを分岐して記録していくためのもの
– 分岐したブランチは他のブランチの影響を受けない
– 同じリポジトリ中で複数の変更を同時に進めていくことができる
タグとは
– 履歴のある時点の情報を記録していくためのもの
– 他のタグの影響を受けない
Copyright © fullvirtue. All rights reserved. 53サルでもわかるGit入門 http://www.backlog.jp/git-guide/stepup/stepup1_1.html
Git の考え方とポイント
ブランチ・タグを中心としたソフトウェア開発(2/2)
Copyright © fullvirtue. All rights reserved. 54SourceTreeで始めよう! Gitへの乗り換え指南 http://www.slideshare.net/kekyo/sourcetree-git
• Gitのブランチは「動かせる目印」
• Gitのタグは「動かせない目印」
Git の考え方とポイント
ブランチを中心としたソフトウェア開発(1/7)
5種類のブランチを軸に構成
1. master
2. develop
3. feature
4. release
5. hotfix
Copyright © fullvirtue. All rights reserved. 55A successful Git branching model http://nvie.com/posts/a-successful-git-branching-model/
Git の考え方とポイント
ブランチを中心としたソフトウェア開発(2/7)
Copyright © fullvirtue. All rights reserved. 56A successful Git branching model http://nvie.com/posts/a-successful-git-branching-model/
masterhotfixreleasedevelopfeature
Git の考え方とポイント
ブランチを中心としたソフトウェア開発(3/7)
Copyright © fullvirtue. All rights reserved. 57A successful Git branching model http://nvie.com/posts/a-successful-git-branching-model/
masterhotfixreleasedevelopfeature
本番環境の不具合対応
不具合対応を開発環境にも反映
不具合対応内容を本番環境に反映
本番リリース時にタグを付与
Git の考え方とポイント
ブランチを中心としたソフトウェア開発(4/7)
Copyright © fullvirtue. All rights reserved. 58A successful Git branching model http://nvie.com/posts/a-successful-git-branching-model/
masterhotfixreleasedevelopfeature
リリース前確認で不具合発見し
たので対応
不具合対応を開発環境にも反
映
リリース内容を本番環境に反映
本番リリース時にタグを付与
Git の考え方とポイント
ブランチを中心としたソフトウェア開発(5/7)
Copyright © fullvirtue. All rights reserved. 59A successful Git branching model http://nvie.com/posts/a-successful-git-branching-model/
masterhotfixreleasedevelopfeature
開発環境に反映
Featureブランチを新たに作成
Git の考え方とポイント
ブランチを中心としたソフトウェア開発(6/7)
Copyright © fullvirtue. All rights reserved. 60
ブランチがmasterに収束している例
複数の開発が並行で進んだ例
順番に開発を進めた例
Git の考え方とポイント
ブランチを中心としたソフトウェア開発(7/7)
ブランチ名に / を付けると階層構造になる
1. master
2. develop
1. develop/issue01
2. develop/issue02
3. ・・・
3. feature
4. release
1. release/20150402
2. ・・・
5. hotfix
Copyright © fullvirtue. All rights reserved. 61A successful Git branching model http://nvie.com/posts/a-successful-git-branching-model/
開発用ブランチをまとめた例
リリース用ブランチをまとめた例
Git の考え方とポイント
プルリクエストのススメ(1/2)
「プッシュ」と「プルリクエスト」の違い
– プッシュ(push)
» 誰からもレビューされていないソースコードを、開発者の判断で、全員に影響があるブランチに反映
– プルリクエスト(pull request)
» 誰かしら変更内容を確認したソースコードを、権限のある役割の方の判断で、全員に影響があるブランチに反映
Copyright © fullvirtue. All rights reserved. 62
Git の考え方とポイント
プルリクエストのススメ(2/2)
Copyright © fullvirtue. All rights reserved. 63http://www.casleyconsulting.co.jp/blog-engineer/git/キャスレーの社内開発で利用するgitのブランチモ/
本日お話すること(1/1)
アジェンダ(1/1)
本日の概要
Visual Studio 2015 + Git で開発を始めるには
Git の考え方とポイント
まとめ
Copyright © POStudy (プロダクトオーナーシップ勉強会). All rights reserved. 64
まとめ
Copyright © fullvirtue. All rights reserved. 65
Git の考え方とポイント
バージョン管理システムの方式(2/9)
『集中管理方式』
『分散管理方式』
– プロジェクトのファイルの全バージョンを保管するための中央サーバーを必要としない
– 各開発者はレポジトリのコピーを “クローン” し、自身のハード ドライブ上にそのプロジェクトの 完全な 履歴を持つ
– コミット時、差分の保存ではなく、ファイル全体をそのまま圧縮保存
– 代表的な分散型バージョン管理システム
» Git ←TFS/VSOサポート
» Mercurial
Copyright © fullvirtue. All rights reserved. 66バージョン管理とは : 集中型 vs. DVCS http://japan.blogs.atlassian.com/2012/11/version-control-centralized-dvcs/
Git の考え方とポイント
何をバージョン管理するのか(1/1)
ある時点のソフトウェア・環境を構築するために必要なものすべて
– ソフトウェアのソースコード
– ビルドスクリプト
– データベースのスキーマ定義、マイグレーションの SQL、初期データ
– 環境構築用の設定ファイル・スクリプト
Copyright © fullvirtue. All rights reserved. 67知らないと現場で困るバージョン管理システムの基礎知識 http://www.atmarkit.co.jp/ait/articles/1305/20/news015.html
ご静聴ありがとうございました!
Copyright © @fullvirtue. All rights reserved. 68
グロースエクスパートナーズ株式会社 ITアーキテクト
エンタープライズ向けのIT業界にて、企画から開発運用および新規事業立ち上げに関与。現職は、エンタープライズ向けの新規サービス立ち上げ支援ITコンサルタントおよびITアーキテクト。
これまで、顧客に価値をもたらすITサービスを提供し続けられることを目標としたワークショップ型セッションに数多く登壇。『「超初心者」専門ITスクールTECH GARDEN SCHOOL』や『グロースハックアカデミー』にてIT人材教育の講師としても活躍。アジャイル開発やスクラム、プロダクトマネジメント、Visual Studio / Microsoft Azureに関わるコミュニティの数々の主催またはコアメンバーとしても積極的に活動中。
コンタクト先 URL
Blog http://fullvirtue.com/
Twitter https://twitter.com/fullvirtue是非フォローしてください!
Facebook https://www.facebook.com/fullvirtue
Email [email protected]
資料公開場所 http://slideshare.net/fullvirtue/これまで登壇してきた資料はこちらで公開しています!是非ご覧ください!
関 満徳せき みつのり