[Git] Git操作に関する用語を理解する

ここではGitを扱う上で必要にある基本用語について説明します。
広 告
目次
- 1. Gitとは
- 2. リポジトリとは
- 3. コミット(commit)とは
- 4. チェックアウト(checkout)とは
- 5. プッシュ(push)とは
- 6. プル(pull)・フェッチ(fetch)とは
- 7. クローン(clone)とは
前提条件
- なし
動作確認端末
- なし
1. Gitとは
Gitとは、ソースコードなどの変更履歴を記録するための分散型バージョン管理システムです。
Gitが利用されているサービスとして、GitHub、Bitucket等があり、Eclipse、Visual Studioなどの開発環境、DreamweaverのようなWebオーサリングツールまで様々な環境でGitが対応しています。
Gitの3つの特徴
Gitには主に以下のような3つの特徴があります。
- ファイルの状態を簡単に記録できる
- Gitを使うと、過去から現在までのファイル状態を簡単に記録することができます。記録した状態のファイルはいつでも簡単に戻すことが可能で、ファイルが新しく更新される度に新しい記録が追加されていき管理されます。つまり、過去に記録された状態のファイルをいつでも取り出すことが可能となります。
- ファイルの同時編集が可能
- 同一ファイルを複数メンバーが同時に編集した場合でも、他メンバーが不用意にファイルを上書きしたとしても、自分の作業が消失することがありません。また、他メンバーが編集した変更点を自分の作業ファイルに簡単にマージする機能があります。
- ファイルのバックアップが不要
- 過去に記録した状態を取り出せるため、ユーザが日付毎などにファイルを手動でバックアップ取る等の作業が不要になります。また、コミットメッセージと呼ばれる編集理由・内容をメモとして残すことができるため、どのような変更がされてきたのかを容易に把握することができます。
2. リポジトリとは
リポジトリは、ファイルの状態を格納するデータベースのようなもの
です。リポジトリには、ファイルの変更内容と変更に対するメッセージがセットで格納されます。
リポジトリでは、どのようなファイルも管理することができます。一般的に管理されるものの例としては、ソースコード(HTML、CSS、Javascript、PHP、C、Java等)、画像ファイル、設定ファイル、があります。ソースコードからコンパイルされるオブジェクトファイルやクラスファイルは通常は管理しません(ソースコードをコンパイルすればいつでも得られるため)。
リポジトリには2種類あります。リモートリポジトリ(共有リポジトリ)とローカルリポジトリです。それぞれの役割は以下のとおりです。
- リモートリポジトリ
- 共有のサーバ上にあり、各開発者の変更内容をまとめるリポジトリのことを指します。
- ローカルリポジトリ
- 各開発者のPC上にあるリポジトリです。
Gitを使った開発は、
①まず個人の開発作業(ソースコードファイル編集)をローカルリポジトリ上で進めます。
②区切りがよい時点で、リモートリポジトリに自分が作業した部分を登録し、他の開発者に共有します。
③すると他の開発者はリモートリポジトリから共有された変更点を、自分のローカルリポジトリに取り込み、開発作業を進めます。
④お互いがそのような流れで作業を行うことで、開発者同士が複数の機能を並行して開発することができるようになります。
3. コミット(commit)とは
コミットとは、開発者がPC上で変更したファイルをローカルリポジトリに登録する操作
のことを指します。
4. チェックアウト(checkout)とは
ローカルリポジトリ上にある状態のファイルを取り出す操作
のことを指します。
5. プッシュ(push)とは
ローカルリポジトリに登録された変更をリモートリポジトリに反映させる操作
を指します。
6. プル(pull)・フェッチ(fetch)とは
リモートリポジトリ上の状態をローカルリポジトリに取り込む操作
を指します。pullは、リモートリポジトリの状態を作業中のファイルに直接反映させます。fetchは、リモートリポジトリの状態をローカルリポジトリに反映させ、作業中のファイルには反映しません。
7. クローン(clone)とは
ローカルリポジトリを新規作成する時にリモートリポジトリの複製し、新しいローカルリポジトリとする操作
を指します。
以上のことをまとめると、以下の図で表すとこのようになります。
