サイトロゴ
Gitについて
Gitは分散型のバージョン管理システムで、ファイル(フォルダ)の状態を更新履歴として保存し、
編集したファイルを過去の状態に戻したり、現状や履歴間での差分を表示、編集したりすることができます。

ファイル(フォルダ)に対し、「いつ」「誰が」「何をどう変更したか」といった情報を記録し、
過去のある時点の状態を復元したり、変更内容の差分を表示できるようにするシステムで、
大きく「集中型バージョン管理システム」と「分散型バージョン管理システム」に分かれます。
集中型バージョン管理
集中型(クライアント⇔サーバ)バージョン管理システムでは1つのリポジトリを使用します。
リポジトリとは、ファイル(フォルダ)自体や変更履歴などを保存しておく場所で、
複数メンバーで開発する場合には、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」から分岐して作成するブランチ
Git作業の主要コマンド
・チェックアウト git checkout
ローカルリポジトリの対象ブランチに参照を切り替えます

・フェッチ git fetch
リモートリポジトリの変更内容を確認する要求を投げます

・プル git pull
リモートリポジトリの変更内容を取り込みます

・コミット git commit
ローカルリポジトリに差分を反映します

・プッシュ git push
リモートリポジトリにローカルリポジトリの状態を反映します
 

SourceTree
「SourceTree」は、「atlassian」が無償提供するGitのGUIクライアントです
利用する為には「atlassian」のアカウント登録(無料)が必要です
GUIに依る直感的なコマンド発行と、ブランチの状態の見易さ、
差分ファイル管理のし易さに定評があり、多くのデベロッパに広く利用されています