Gitについて
Gitは分散型のバージョン管理システムで、ファイル(フォルダ)の状態を更新履歴として保存し、
編集したファイルを過去の状態に戻したり、現状や履歴間での差分を表示、編集したりすることができます。
ファイル(フォルダ)に対し、「いつ」「誰が」「何をどう変更したか」といった情報を記録し、
過去のある時点の状態を復元したり、変更内容の差分を表示できるようにするシステムで、
大きく「集中型バージョン管理システム」と「分散型バージョン管理システム」に分かれます。
編集したファイルを過去の状態に戻したり、現状や履歴間での差分を表示、編集したりすることができます。
ファイル(フォルダ)に対し、「いつ」「誰が」「何をどう変更したか」といった情報を記録し、
過去のある時点の状態を復元したり、変更内容の差分を表示できるようにするシステムで、
大きく「集中型バージョン管理システム」と「分散型バージョン管理システム」に分かれます。
集中型バージョン管理
集中型(クライアント⇔サーバ)バージョン管理システムでは1つのリポジトリを使用します。
リポジトリとは、ファイル(フォルダ)自体や変更履歴などを保存しておく場所で、
複数メンバーで開発する場合には、1つのリポジトリを複数人で共有して利用します。
開発時は、リポジトリからソースコードを取得してきて編集し、編集が終わったらリポジトリに直接反映します。
リポジトリとは、ファイル(フォルダ)自体や変更履歴などを保存しておく場所で、
複数メンバーで開発する場合には、1つのリポジトリを複数人で共有して利用します。
開発時は、リポジトリからソースコードを取得してきて編集し、編集が終わったらリポジトリに直接反映します。
分散型バージョン管理
分散型バージョン管理システムはリポジトリを複数持つことが出来る為「分散型」と呼ばれ、
開発の形態や規模に合わせて柔軟なバージョン管理が可能です。
Gitで運用する場合、サーバーに「リモートリポジトリ」、
開発者それぞれのローカル環境に「ローカルリポジトリ」を持つ構成となり、
作業は基本的にローカルリポジトリで進め、ある程度作業をした時点で、
リモートリポジトリに反映するというフローになります。
チーム開発の場合、1つのリポジトリを使いまわす集中型よりも、
分散型バージョン管理システムは非常に効果的なツールとなります。
開発の形態や規模に合わせて柔軟なバージョン管理が可能です。
Gitで運用する場合、サーバーに「リモートリポジトリ」、
開発者それぞれのローカル環境に「ローカルリポジトリ」を持つ構成となり、
作業は基本的にローカルリポジトリで進め、ある程度作業をした時点で、
リモートリポジトリに反映するというフローになります。
チーム開発の場合、1つのリポジトリを使いまわす集中型よりも、
分散型バージョン管理システムは非常に効果的なツールとなります。
標準Gitフロー
git-flowとは、Gitの運用ガイドラインの1つで、デファクトスタンダードになりつつある「A successful Git branching model」を採用したガイドラインです。
このモデルは大きく4つのブランチに分けて、開発を進めます。
・メインブランチ
master
リリース可能な状態のみ管理。リリース番号をタグとして保存
develop
リリースに向けた開発統合ブランチ。各フィーチャーブランチをマージして運用
・フィーチャーブランチ(トピックブランチ)
feature/xxxx_task
直接作業ブランチ。作業完了したら「develop」にマージ
・リリースブランチ
release
「develop」が殆どリリース可能な状態に近づいたら「develop」を基に「release」ブランチを作成
リリースに向けた最終的なバグ修正等の作業を実施~反映
リリース可能な状態になったら、「master」にマージ~タグを付与します
「release」の修正を取り込む為、「develop」にもマージ
・ホットフィックスブランチ
リリース物件に緊急で修正が必要になった場合に「master」から分岐して作成するブランチ
このモデルは大きく4つのブランチに分けて、開発を進めます。
・メインブランチ
master
リリース可能な状態のみ管理。リリース番号をタグとして保存
develop
リリースに向けた開発統合ブランチ。各フィーチャーブランチをマージして運用
・フィーチャーブランチ(トピックブランチ)
feature/xxxx_task
直接作業ブランチ。作業完了したら「develop」にマージ
・リリースブランチ
release
「develop」が殆どリリース可能な状態に近づいたら「develop」を基に「release」ブランチを作成
リリースに向けた最終的なバグ修正等の作業を実施~反映
リリース可能な状態になったら、「master」にマージ~タグを付与します
「release」の修正を取り込む為、「develop」にもマージ
・ホットフィックスブランチ
リリース物件に緊急で修正が必要になった場合に「master」から分岐して作成するブランチ
Git作業の主要コマンド
・チェックアウト git checkout
ローカルリポジトリの対象ブランチに参照を切り替えます
・フェッチ git fetch
リモートリポジトリの変更内容を確認する要求を投げます
・プル git pull
リモートリポジトリの変更内容を取り込みます
・コミット git commit
ローカルリポジトリに差分を反映します
・プッシュ git push
リモートリポジトリにローカルリポジトリの状態を反映します
ローカルリポジトリの対象ブランチに参照を切り替えます
・フェッチ git fetch
リモートリポジトリの変更内容を確認する要求を投げます
・プル git pull
リモートリポジトリの変更内容を取り込みます
・コミット git commit
ローカルリポジトリに差分を反映します
・プッシュ git push
リモートリポジトリにローカルリポジトリの状態を反映します
SourceTree
「SourceTree」は、「atlassian」が無償提供するGitのGUIクライアントです
利用する為には「atlassian」のアカウント登録(無料)が必要です
GUIに依る直感的なコマンド発行と、ブランチの状態の見易さ、
差分ファイル管理のし易さに定評があり、多くのデベロッパに広く利用されています
利用する為には「atlassian」のアカウント登録(無料)が必要です
GUIに依る直感的なコマンド発行と、ブランチの状態の見易さ、
差分ファイル管理のし易さに定評があり、多くのデベロッパに広く利用されています