Gitは分散型のバージョン管理システムの1つです。 ファイルのバージョン管理が簡単にできるツールといえます。 また以下のような特徴がGitにはあります。
- 古いバージョンに簡単に戻せる
- 新旧のファイルを一元管理できる
- 編集した履歴を複数人で共有できる
- 複数人で修正した部分を一つに統合できる
リポジトリとは、ファイルやディレクトリを入れて保存しておく貯蔵庫のことです。 Gitにおけるリポジトリは以下の2種類に分かれています。
- リモートリポジトリ(共有リポジトリ) ・・・ 特定のサーバー上に設置して複数人で共有するためのリポジトリ
- ローカルリポジトリ(個人リポジトリ) ・・・ ユーザーごとに配置される手元のマシンで編集できるリポジトリ
2種類のリポジトリに分けることで、普段の作業はそれぞれのユーザーが手元のローカルリポジトリで行い、作業内容を共有するときにリモートリポジトリで公開するという使い方になります。 リモートリポジトリを介して他のユーザーの作業内容を把握することも可能です。
コミットは、ファイルやディレクトリの編集作業をローカルリポジトリに記録するために必要な操作のこと。 コミットを実行するとファイルを編集した日時を記録したファイルが生成されます。 コミットを実行するごとにファイルが生成され、時系列順にならんで格納されるので、ファイルを編集した履歴やその内容を確認することができるわけです。
プッシュとは、ローカルリポジトリにあるファイルをリモートリポジトリに送信して保存する機能です。 共有リポジトリへの反映が行われるため、アップロードともいえるでしょう。 クローンと異なるのはローカルリポジトリとの差分のみをダウンロードして更新する点です
プルとは、共有されているリモートリポジトリに保存されているファイルの内、ローカルリポジトリ(あなたのローカル環境)に無いファイルや他のユーザーが更新したファイルのみをダウンロードする機能です。 ようするにリモートリポジトリの内容を同期させるとも言えます。
クローンとは、ダウンロードに近いものものです。 複数人で共有しているファイル(リモートリポジトリ)をまるごと自分のローカル環境(ローカルリポジトリ)に保存する機能です。 まったく新規で開発の共有を始める場合に最初に行う作業といえます。
ブランチとは、ファイルの編集履歴を分岐させて記録していく機能のことです。 WEBサービスやソフトウェアの開発において、バグの修正や、機能の追加などのファイル編集作業は複数のユーザーが同時に行うことも少なくありません。 並行して同時に行われる作業を正確に管理するためにGitにはブランチという機能が用意されています。これがGitのバージョン管理を効率的にし、間違いを減らすためにもっとも活かされている機能ともいえます。
例としてマスターブランチであるメインのブランチと、そこから分岐してバグの修正や、機能の追加を行っているブランチを記すと以下のようになります
複数のブランチを一つにまとめて、完成形に近づけることをマージと呼びます。 ブランチの図で言うとバグの修正や、機能の追加を行ったブランチがマスターブランチに統合されている部分のことです。
リモートリポジトリからファイルの最新情報を取得してくる操作のことです。共有されているファイル(リモートリポジトリ)の更新を確認したり、複数人の作業の擦り合わせのために使う機能といえます。 プルと異なる点はローカルのファイルを更新することはないことです。 複数人で同じファイルを編集しているときでもお互い干渉しないようにするための機能と言えます。
共有リポジトリへ編集した内容を反映する方法です。以下のようなステップで行います。
- 内容を変更したり新規作成したりしたファイルをローカルリポジトリにCommitする
- リモートリポジトリにローカルリポジトリへPushする
共有リポジトリの内容を個人リポジトリに反映する方法です。以下のようなステップで行います。
- リモートリポジトリから情報をPullする
- あとはGitを用いたPush(リモートリポジトリへの反映)方法
Gitの仕組みと連携して、他のユーザーとやりとりしやすくしているホスティングサービスである。 またGitHubには以下のような特徴があります。
- Pull Requestによるコラボレーション機能
- 他チームのGitHubの開発に参加・確認機能
- 非公開リポジトリは有料・公開リポジトリは無料