2. Git利用ガイド¶
2.1. 記載内容¶
2.1.1. 書いていること¶
- Gitを使用した構成管理についての基本的な考え方(リモートリポジトリとローカルリポジトリ、ブランチ)
- 開発をすすめていくなかでの最低限の操作方法
- GitとSubversionの構成管理の考え方の違い(説明のなかで少し出てきます)
2.1.2. 書いていないこと¶
- そもそも構成管理とはなにか
- ツールのインストール方法、初期設定方法(環境構築ガイドに書いてあるようなこと)
- 実行コマンド
- 高度な使い方
2.3. SubversionとGit¶
構成管理の考え方についてはSubversionとGitでの大きな差はありません。
どちらも、開発者はローカルにてソースコードの変更し、リモートリポジトリにソースコードを格納することでソースコードの共有を行います。
また、ソースコードの変更差分のバージョン管理はリモートリポジトリにて行います。
SubversionとGitでの開発者の操作のながれを2つの図で記載します。
以下の2つの図を見比べてみても、開発者の操作はほぼかわりません。
ただし、 Gitにはローカルリポジトリというものがある ということを覚えてください。
注釈
※SubversionにはあってGitにない操作、GitにあってSubversionにない操作を黄色枠で囲っています。
2.3.1. Subversionの操作のながれ¶
2.3.2. Gitの操作のながれ¶
2.3.3. ローカルリポジトリとリモートリポジトリ¶
ローカルリポジトリとは、開発PC内で(オフラインで)コミットの記録を保管しておける領域です。ローカルリポジトリへのソースコード変更の登録は”自分だけ“がわかります。
リモートリポジトリはgitBucketにて管理しているリポジトリのことです。リモートリポジトリへのソースコード管理の登録は”チームメンバへ“変更内容を展開することが出来ます。
Gitでは、ローカルリポジトリに一度変更差分を登録し、その変更差分をリモートリポジトリに反映していきます。
操作が”ローカルリポジトリに対して“か”リモートリポジトリに対して“かを意識しましょう。
以下解説では、上図のようにローカルリポジトリ(青色の四角)・リモートリポジトリ(オレンジ色の雲)を分けて解説していきます。
2.4. ブランチについて¶
(Subversionでは開発のために各開発者がブランチをきることはほとんどなかったと思いますが、) Gitでは各開発者がブランチをきって開発をすすめていきます。
Gitでは強力なマージ機能があります。そのため、ブランチをきっても、マージする際のコストはあまりかかりません。
ブランチを切って開発を進めていくことで、以下のような利点を得ることが出来ます。
- PullRequest機能(後述します)を使用することで、ブランチ間のファイル差分を容易に確認することができ、レビュー対象が明確にわかります。
- ブランチを切り替えてレビュー対象のソースコードを容易に動作確認することが出来ます。
- ブランチを切ってレビュー完了後にマージすることで、ソースコードを必ずレビューする運用にすることができ、ソースコードの品質を維持することが出来ます。
2.4.1. ブランチの種類¶
PGUT工程中は、主に以下のような種類のブランチができます。
- masterブランチ
- チームにて管理するブランチ
- 本番環境へリリースするソースコードを管理する
- モジュール:ブランチ=1:1
- developブランチ
- チームにて管理するブランチ
- 開発中のソースコードを管理する
- 既にレビューに合格しているもののみ格納する
- モジュール:ブランチ=1:開発拠点数(※開発拠点が一箇所であれば1)
- featureブランチ + 開発者が作成し、開発者が削除するブランチ + 開発中かつレビュー合格前のソースコードを格納する + モジュール:ブランチ=1:他
2.4.2. ブランチの概念¶
以下の記載方法では、ブランチの時系列を表すことが出来ます。
ただし、本ドキュメントでは、「ある時点でのリポジトリの状態を断面化したもの」としてブランチを説明していきます。
ブランチを切り替えることで、ローカルファイルがブランチごとに変更されていきます。
今自分がどのブランチにいるのかを意識しましょう。
なお、上記 Gitの操作のながれ のイメージ図に記載しましたが、各開発者はまず開発PCのローカルリポジトリのファイルに対して変更を登録していきます。
2.5. 実際の操作¶
では、実際の操作方法について記載していきます。
状況にあわせて以下リンクを参照してください。
2.5.1. 対象読者¶
以下全てに当てはまる人を対象読者としています。
ただし、操作方法リンクに★をつけて補足を記載している箇所は、全員が参照するようにしてください。
- Subversionを利用した開発経験がある。
- Gitを使うのは初めて。
- SourceTreeをインストールしている。
2.6. 操作方法リンク先¶
2.6.1. プロジェクト参加のときにやること(clone)¶
2.6.2. 開発を始めるときにやること(checkout)¶
★ブランチの切り方について記載しています。
2.6.3. 開発中にやること(ローカルでの作業)¶
★コミットメッセージについて記載しています。
2.6.4. 開発中にやること(リモートブランチへの反映)¶
2.6.5. レビュー依頼のときにやること¶
★プルリクエストに記載するコメントについて記載しています。