ITエンジニアのキャリア相談サイト > フリーランス大学 > コラム > エンジニアなら説明できなきゃマズイ!GitとGitHubの違いをわかりやすく解説

2017-02-28

エンジニアなら説明できなきゃマズイ!GitとGitHubの違いをわかりやすく解説

01


JavaとJavaScriptのように、システム開発業界では似ているのに中身が大きく違うという用語がいくつか存在します。

今回紹介するGitとGitHubもそのひとつです。複数人で開発するプロジェクト現場では当たり前のように使われているGitとGitHubについて、それぞれを詳しく説明し、その違いも解説します。

GitとGitHubの違いを説明できますか?

GitとGitHubの違いは、普段開発現場にいるエンジニアですらあまり意識することはないかもしれません。というのも、GitとGitHubは互いに関連性を持っており、セットで運用されることが非常に多いためです。

しかし、GitとGitHubは異なります。その違いについて、以下説明いたします。

Gitとは?

そもそもGitとはどのようなものでしょうか?

複数人のプログラマやエンジニアでプロジェクトを開発する場合、ソースコードを効率的に管理する必要があります。多くの開発現場ではひとつのプログラムファイルを複数人で担当していますが、共有状態で編集すると変更履歴がバッティングし正常にファイルが更新されないことがあります。

そこで、プログラミング時には各自がローカル(自分のパソコン)にファイルをコピーし、コピーしたファイルを編集し作業完了後に共有へアップします。この際、他のプログラマが編集したファイルを上書きして編集内容を消してしまわないよう、「バージョン管理」が必要になります。

つまり、更新の度にバージョンを書き換えファイルやディレクトリの変更履歴を記録する必要があるのです。

現場での悩み

実はプログラム開発現場では、以下のような事態に遭遇することが珍しくありません。

・プログラム修正前はきちんと動いていたのに修正したら動かなくなった!
・別の人が書いたコードを古いコードで上書きしてしまった!
・開発用ファイルと本番用ファイルを分けたけど、どっちがどっちだったかわからなくなってしまった!

このような時、ファイルを少し前の状態に戻したくなりますよね。そこでしっかりバージョン管理(変更履歴管理)しておけば、簡単に前の状態に戻せるということです。

Gitはバージョン管理を行う仕組み

プログラム開発の際には、ファイルを保存しておく「共有リポジトリ」と呼ばれるものがあります。開発を行う際にはこの「共有リポジトリ」をローカルにコピーし、「ローカルリポジトリ」上で作業を行います。

一通りプログラム開発作業が終われば「コミット」します。ゲームでいう「セーブ」みたいなものです。そのコミットしたローカルリポジトリを共有リポジトリにアップロードし、作業が完了します。

この際、Gitの仕組みを利用していれば、だれがいつどのような変更を行ったかを管理することができると共に、バージョン管理をしているので変更前のデータに戻すことも容易に行えるのです。

02

GitHubとは?

では、GitHubとはどのようなものでしょうか?

実はGitHubとは、Gitのリモートリポジトリにあたる部分を提供しているサービスの種類のことです。GitHub社という企業によって運営されており、登録することで利用できるWebサービスの名称となっています。

Git環境で開発を行うプロジェクトにおいて、GitHubはグラフィカルなUIで利用を簡素化し、かつセキュリティのためのアクセス制御機能を持たせているため安心してリモートリポジトリを保存可能です。また各プロジェクトにwikiやタスク管理ツールなどを実装しており、プロジェクトマネジメントにも使えます。

また、GitHubの最も便利な機能がプルリクエストと呼ばれるものです。プログラム開発中に、他のエンジニアが作業しているファイルに影響を及ぼす更新が必要となる場合があります。他のエンジニアがローカルリポジトリで作業を行っており、そのオリジナルデータに対する編集権限がない場合、自分のところで改変しその改変内容をオリジナルのオーナーに「プルリクエスト」することにより改変内容を取り込むことができるのです。

これをマージと呼び、GitHubではマージを安全確実迅速にできる環境を実現しました。

つまり、GitとGuitHubはこう違う

GitとGuitHubというのは、簡単にいうと仕組みとプラットフォームの違いです。Gitというプログラム開発に必要不可欠な仕組みを、円滑安全に実現するプラットフォームはGitHubということになります。

また、Gitの仕組みを利用したサービスにはGitHub以外にBitbucketやGitLabなどがありますが、現在最も広まっているのはGitHubであるといえるでしょう。

なお、GitHubには無料プランと有料プランがあります。無料プランでも十分に実用的ですが、リポジトリの内容はすべて公開されてしまいます。非公開にしたい場合には有料プランを活用してください。

おわりに

複数人のグループで作業をする際には、バージョン管理に最も気を使います。変更履歴を保存していかなければ、ちょっとした更新ミスの修正にも必要以上に時間を消費してしまい、納期遅れを招くこともあります。

Gitはプログラマが効率的に作業できるように開発された仕組みであり、GitHubはより便利に利用するためのサービスとして、今やなくてはならないものとなっています。


カテゴリー

このサイトについて

ITエンジニア専門のキャリア相談コミュニティ【FUTURIZM】が運営するIT・Web業界で活躍するエンジニアのための情報サイトです。日々の開発に役立つ技術情報からキャリア、ガジェットまで、エンジニアに役立つ記事を発信中。求人案件/仕事情報を探しているフリーエンジニアの方はこちらへどうぞ。

人気の記事

最新記事

運営会社