検索

キーワード


【初心者向け】バージョン管理システムの定番!絶対知っておきたいGitの特徴について解説

  • 公開日:2021-02-09 13:04:24
  • 最終更新日:2021-02-12 16:08:05

開発現場で必須!Gitとは?特徴について解説

こんにちは。javaの開発を中心に請け負っているフォワードソフト所属のエンジニアの田口です。

今回はITに関わる人間なら誰でも知っておきたいGitについて、これから開発に関わる初心者向けに解説を行っていきます。


主に以下の内容について解説します。

Gitについて

・Gitの特徴

・現場での使われ方

・併用されるツール


また、本記事はバージョン管理についての知識があることを前提として書かれています。リポジトリなど、わからない用語があった場合には以下の記事を参照してください。

開発現場で必須!バージョン管理システムとは?メリットや主要なシステムを初心者向けに優しく解説


Gitとは

GitはLinuxの開発チームが自分たちの開発スタイルにあったバージョン管理システムを自作する形で登場しました。そしてそれ以来多くの開発現場で用いられ、今やバージョン管理システムのデファクトスタンダードともいえる存在となっています。その大きな特徴は、リポジトリの管理方式です。GitはSVNなどの従来の集中管理方式バージョン管理システムとは異なり、マスターのリポジトリをローカルにコピーし、ネットワーク上とローカル上の2か所で管理する分散管理方式のバージョン管理を行います。1つのプロジェクトで複数のリポジトリを作成できるため、マスターのリポジトリにアクセスできない環境であってもファイルの変更作業が行えます。また、ファイルの変更を履歴で管理しているので変更履歴を確認しやすく、後述するマージがやりやすいのも特徴です。


Gitのイメージ図

Gitのイメージ図

Gitの基本概念

ここからはGitの基本的な概念について触れていきます。


リポジトリ

バージョン管理を行うためには、どこでバージョン管理を行うかを明らかにしておかなくてはなりません。そのためのスペースをリポジトリといいます。リポジトリは言ってしまえばただの入れ物です。この入れ物にファイルを入れることで変更を記録してくれるようになり、バージョン管理が行えます。

Gitには以下の2種類のリポジトリが存在します。


ローカルリポジトリ・・・実際に作業を行う際に使用する、自分のPCに作成されるリポジトリ

リモートリポジトリ・・・チームでのリポジトリ共有やバックアップを目的とした、ネットワーク上のリポジトリ。多くの場合GitHubやGitLabといったツール上で作成される。

このようにリポジトリの管理場所を分散させることで、データの可用性を高めています。


コミット

Gitでは一つ一つのバージョンのことをコミットと表し、コミットを作成することをコミットするといいます。

このコミットには下記のような様々な情報が保存されています。


リビジョン番号・・・コミット時に決定されるIDのようなもの

コミットした人

コミットした日時

ファイルの変更点

コメント・・・コミットした理由、内容などを記述できる

親コミット(ひとつ前のコミット)のリビジョン番号

コミットはそれぞれ自分がどのコミットから派生したのかわかるように親コミットのリビジョン番号を持っています。これにより、親コミットのその親コミットの・・・という形で変更履歴をたどることができます。


ワークツリーとインデックス

ファイルに変更を加えてコミットを行うには、次の段階を経ます

ワークツリー →(ステージする)→ インデックス →(コミットする)→コミット

Gitでバージョン管理しているフォルダ内のことをワークツリーといいます。ワークツリーはいわば作業場所です。ここからコミットするにはまず、コミットしたいファイルを選択する必要があります。選択されたファイルはコミットをする前の踏み台であるインデックスという場所へ移されます。このワークツリーからインデックスへの遷移をステージするといいます。インデックスはコミットをするファイルの選別場所です。一度にコミットするファイルをここでできるだけ機能ごとにまとまりをもったものにすることで、後から遡って利用しやすくします。


ブランチ

ブランチは変更履歴を枝分かれさせる機能です。コミットの川の流れを分岐させるようなイメージです。たとえば複数人での開発を行っている時、それぞれの担当作業を各々のタイミングでコミットした場合、コミットの流れが複雑になり内容が追いづらくなってしまいます。

しかしここでブランチを利用することで、各人が担当ごとのコミットの流れをつくり、後から合流させるといったことが可能になります。これにより、担当ごとの変更履歴がわかりやすくなるため、バージョンが確認しやすくなります。


Gitと一緒によく使われるサービス

Gitは2か所でリポジトリを管理します。そのうちローカルリポジトリは自分のPC上なので管理上特に問題はありませんが、チーム全体の共有で使用するリモートリポジトリをどこで管理するかという問題があります。そういう時、Gitとよく併用されるサービスとして、GitHubとGitLabというものがあります。

両者についての概要を下記の記事で解説しています。

GitHubとGitLabの違い|Gitでよく使用される2つのサービスについて解説


【著者】

田口

元建築・リフォーム営業のエンジニア。現在はDXの需要に合わせてネットワークやクラウド、セキュリティといったインフラ方面の勉強中。