2017.05.17

Gitとは?

カテゴリー
用語辞典
タグ
Web開発
用語辞典

170418_dic-Git_mv

何かプログラムを開発・修正する場合、その更新履歴をバージョンとして管理することは非常に重要です。今回は、そのバージョン管理ツールとして人気の高い「Git」について解説。Gitの仕組みやメリットや、誕生の背景などにも言及していきます。

Gitとは

Gitは、「バージョン管理システム」のひとつです。例えば「Subversion」などは広く使われているため、聞いたことがある方も多いでしょう。

何か書類に修正や加筆した場合、更新履歴を記載します。ルールやレギュレーションのようなものでは、必ず更新履歴があると思います。この更新履歴は何のためにあるかと言えば、不特定多数の人間が同一の書類に手を加えた時にその履歴がわかるようにし、後々の更新に役立てるためです。プログラムでも同様のことが行われています。

ひとつのプログラムに対して、同じタイミングで複数人が手を加えたり、時間の経過とともに担当者が移り変わったりといった事態がよく起こります。また、実際の現場では本番環境ですでに稼働しているバージョンのプログラムとは別に、修正や追加開発用のバージョンを取得することもあります。手を加え終わったら、それを本番環境に適用するわけですね。このような時、バージョン管理システムが非常に役立ちます。

このようなバージョン管理システムの中で注目されているGitは、「分散型バージョン管理システム」です。Git最大の特徴は、本体がある場所から別の場所、例えばローカルPCなどにリポジトリ(プログラム開発に必要な情報資源の保管庫)をコピーした場合に発揮されるでしょう。その特徴とは、リポジトリが「完全な形で」ローカルPCにコピーされるという点です。

Gitを使うメリット

では実際Gitを使うとして、一体どのようなメリットがあるのかを考えてみましょう。前述したようにGitは、分散型のバージョン管理を行い、誰もが自分の環境(ローカルPCなど)に、本体リポジトリ(共有リポジトリ)と同じ情報をコピーできます。これは、「作業環境を限定せず、フレキシブルな作業を可能にする」というメリットがあるのです。従来の集中型バージョン管理システムでは、共有リポジトリにアクセスできる場所でのみ、更新作業が可能でした。つまり、作業環境として、ネットワークに接続できる環境が必要だったのです。

一方、Gitを使えば共有リポジトリと同等のものがローカル環境にコピーできるため、ネットワークに接続されていない環境であっても作業が可能。オフライン環境で更新作業を行い、それをローカルPCに保存しておきます。その後、ネットワークに接続できる状態になったら、ローカルPCに保存したリポジトリを共有リポジトリに反映させれば良いのです。
また、ひとつの共有リポジトリに複数人が同時にアクセス、更新することで起こる「衝突」も回避できるようになります。

さらに、もうひとつの大きなメリットとして「GitHub」を利用できる点が挙げられます。GitHubとは、開発者が自由にソースコードを共有したり公開したりできるSNSのようなものと考えてください。GitHub上に公開したリポジトリを誰かがコピーし、それを使いながら改良や修正を行う、といった流れをごく簡単に実現できます。また、有志によってさまざまな機能を追加した派生バージョンなどを作ることにも適しており、オープンソース開発の世界で注目を集めているのです。

Gitの誕生

このように分散型でフレキシブルな開発を可能にしたGitですが、その誕生について少し言及しておきます。Gitはもともと、Linuxのカーネル(OSの核となる部分)を管理するために作られたシステムです。
Linuxはオープンソースソフトウェアとして世界最大級の規模を誇った巨大プロジェクト。しっかりと管理しなければ、開発は円滑に進んでいきません。当初、この開発においては別のバージョン管理システムが使われていたのですが、ライセンスの問題から、そのバージョン管理システムは有償化してしまいます。そこで2005年にLinuxの生みの親であるリーナス・トーバルズ氏が、独自のバージョン管理システムとしてGitの開発をスタートさせました。今では全世界に広まったと言っても過言ではないオープンソースソフトウェアの雄、Linuxの開発のために生まれたのがGitなのです。
開発と運用を組み合わせたDevOpsや、アジャイル開発といった開発手法が登場し、中央集権的な開発手法は過去のものとなりつつあります。Gitはこうした開発環境の変化に対応し、自由でフレキシブルかつ効率的な開発を実現するためのツールとして、人気を集めていると言えるでしょう。

この記事を書いた人

クラウド推進チーム

クラウド推進チーム

GMOクラウドがお客さまに提供する価値は
『私たちにしか実現できないアイデアで感動と安心を届ける。それが私たちのバリュー』です。
クラウド推進チームはこの価値を提供するためのチームです。
このブログでは、お客さまにとって有益なクラウド情報を発信してまいります。

インタビュー記事

この記事を書いた人

クラウド推進チーム

クラウド推進チーム

GMOクラウドがお客さまに提供する価値は
『私たちにしか実現できないアイデアで感動と安心を届ける。それが私たちのバリュー』です。
クラウド推進チームはこの価値を提供するためのチームです。
このブログでは、お客さまにとって有益なクラウド情報を発信してまいります。

IoTの窓口

docker-tips_bnr

writer