Gitとは
 バージョン管理システム。
ファイルの変更履歴を管理、追跡するもの。
Gitを使うメリットとは
 複数人での開発において誰がどこを変更したかがわかる。
変更履歴を比較でき、問題箇所が見つけやすい。
ファイルの変更履歴を残しておくことによって過去の状態に遡ることができる。
プラットフォーム
見かけることが多いのは以下の二つ。
- GitHub
- Bitbucket
そこでリポジトリを作成していく。
リポジトリとは
 ファイルやディレクトリの状態を記録する場所のこと。
ローカルとリモートの2種類が存在し、ローカルリポジトリで開発したものをリモートリポジトリに反映させていくという流れになる。
| ローカルリポジトリ | 各々のPCに配置する、開発作業をするためのリポジトリ | 
| リモートリポジトリ | 専用のサーバを配置し、複数人で共有するためのリポジトリ | 
ローカルからリモートへ
共有化したいデータをリモートへ移すには
- add
- commit
- push
をする必要がある。
| add | 共有化したいデータをリモートにあげる準備(ステージングエリアにあげる)をする | 
| commit | ローカルリポジトリにその変更を履歴として残す | 
| push | 変更内容をリモートリポジトリに反映する | 
これらの一連の流れによって複数人でデータを共有できるようになる。
ステージングエリア
作業スペースからローカルリポジトリにあげる時に挟む場所。
変更したものの中からローカルリポジトリに作業スペースでの変更を選択する場所。
リモートからローカルへ
他者の変更をローカルの環境に反映させたい場合、
- fetch
- merge
または
- pull
をする必要がある。

【Git】トラッキングブランチの存在を意識して理解を深める
ブランチとは
 変更履歴の流れを分岐させ記録していくもの。
本番用・開発用・新機能用・バグ取り用などで分けたり、作業や機能ごとに分けたりなどする。
ブランチを分け、それぞれ開発し、合わせる(マージという)流れで開発していく。
ここで気をつけたいのは合わせる時にコンフリクトしてしまうこと。
ローカルブランチ
 ローカルリポジトリ上のブランチ。
自分の作業の履歴を残していくためのもの。
リモートブランチ
 リモートリポジトリ上のブランチ。
他者の作業の履歴などを共有して残していくためのもの。
本来であれば、トラッキングブランチというブランチも押さえておくべきなのだが、トラッキングブランチに関してはこちらの記事を参考にしてほしい。
参考:【Git】トラッキングブランチの存在を意識して理解を深める
コンフリクトとは
 同じファイルの同じ場所を同時に変更してしまうことでGItがどちらを優先すべきか判断できず衝突すること。
Aさんが変更していたところをBさんも変更していた…と言う時などに起こってしまう。
どちらの変更が正しいのか、見比べる必要があり、あまり起こってほしくない事態である。
まとめ
 段階ごとに履歴を残しておけばその状態に戻ることもできるので、「開発してたら前よりも悪い状況になってしまった」なんて時に便利ですね。
ちなみにコマンドで打つCUIのものと画面を操作して行うGUIがあり、イメージはGUIの方がつきやすいけれどCUIで使えないと理解しているとは言えないので、CUIも使いこなせるようにすべきかと思います。
そのコマンドに関してはまた記事にしていこうと思います。
参考:[git] 基本操作(clone、add、commit、pushなど)を覚えて、開発出来るようになる
  :Gitの基礎
  :【Git】リモートからの取得とリモートへの反映で行っていること(fetch,pull,push)
  :Git概念の整理を試みる
