トップに戻る
【初心者向け】Gitって何?メリット・デメリットと合わせてわかりやすく解説
 > 
Git/Github > 
プログラミング > 
HOME > 
2022/08/01

【初心者向け】Gitって何?メリット・デメリットと合わせてわかりやすく解説

プログラミング学習を進めている方にとって、必ず目にすることになるのが”Git“というワードです。Gitがどういった存在なのか、気になっている方も多いでしょう。今回は、Gitが一体どのような機能を持ったシステムなのか、概要から人気の理由までわかりやすく解説します。

Gitってそもそも何?

Gitとは、ファイルの変更履歴を保存する、バージョン管理システムの一つです。ファイルを初めに保存した地点、また、その後2,3回目に保存した状態が常に履歴として残っており、いつでも過去の状態に戻したり、履歴さえあれば未来の状態に遷移させたりすることができます。

例えば、Wordなどを操作している際、戻したい箇所があれば、左上の[ 元に戻す ]から、1個手前、あるいはそれより前の状態まで戻すことができますよね。基本的な役割はそれと同じです。

かといって、全く同じものというわけではありません。
Wordなどの場合、基本的に変更履歴を記憶しておけるのはアプリを起動している間だけであって、アプリを終了させて再起動すると、ほとんどの場合は変更履歴が全て消えています
したがって、後から前の状態に戻そうと思っても、もうさかのぼれないわけですね。

Gitの場合は、各変更履歴をシステムのデータとして保持できるので、バージョンが管理されている限り、ファイルを閉じようがアプリを終了させようが、いつでも過去までさかのぼることが可能です。

Git 公式サイト

Gitは”セーブ機能”

Gitについて、非常に簡単な言い方をすると「セーブ機能」に例えることができます。

例えば、ポケモンのゲームなどで、伝説のポケモンとバトルする前にセーブし、ゲットできなかった場合は改めて直前のセーブから再開するような経験がある方もいるのではないでしょうか。

昔のゲームは常にデータを上書きする方式が多かったですが、現代では複数のスロットがあり、セーブデータを同時に何個も保存できるゲームが増えています。複数の重要な地点にいつでも戻れるよう、セーブデータを分けて管理したいプレイヤーが多いからです。

実はシステム開発の現場でも、そういった”もしものとき”を対策することは非常に重要になります。Gitを用いてセーブをこまめに行うことで、「やっぱり前の状態に戻して」のような要望にもすぐ応えられるわけですね。

Gitのメリット

耳にする単語としてはGitが圧倒的に多いですが、Git以外にもSubversionなど、さまざまなバージョン管理システムが存在しています。

もちろん、Gitだけが突出して話題に挙がることが多いのは、それだけ多くのメリットを有しているからです。
ここからは、Gitを使う上でのメリットについてご紹介していきます。

Githubとの連携が可能

Gitのシェアを支えている大黒柱とも言えるのが、”Github”というサービス。Gitは本来コンピュータ上におけるファイルの取り扱いを支援するためのシステムでしたが、Githubは、それらの管理データをクラウド上で他人と共有できるようにした便利サービスです。

これは主に複数人で行われるような開発現場で応用されています。例えば、一つのWEBアプリケーションを複数人で担当個所を分けて開発するとしましょう。
AさんがWEBの画面実装を、
Bさんがバックエンドでサーバ通信の処理を・・・
という具合ですね。

実はGithub等が登場する以前は、場合によっては一つのデータファイルをzipフォルダでやり取りしたり、わざわざファイルとして送受信したりして、共同開発を行っていました。

しかし、当然ながらそういった手法は大変非効率であり、途中で開発内容に変更が生じた場合にはすぐに対応できません。前述の例であればAさんとBさんは別の領域を開発しているのでまだ良いですが、Aさんの担当個所を2,3人で…という話になってくると、ファイルを直にやり取りして開発することが現実的でないのがわかりますね。

Githubはクラウド上で同時に複数のファイルの状態を共有できることから、既存の開発手法よりも遥かに効率的な開発が可能になるわけです。

ただし、便利である一方、セキュリティ面では様々な問題を抱えているため、機密性が重視される開発よりは、WEB制作などの分野で利用されることが多いような印象があります。

他のデータと結合(マージ)可能

これはGitのみに限ったメリットではありませんが、管理されているデータ同士を結合(マージ)させられるのも特徴です。

前述の例でいうと、Aさんが作ったフロントエンドのコードと、Bさんが作ったバックエンドのプログラムを、元々1つのファイルだったかのように、違和感なく合体させることができます。
どちらかが作ってきたプログラムに対し、もう1人が作ったプログラムのコードをコピペしてくるような作業が必要ないわけですね。

同時に複数のエンジニアが同じシステムの開発を進めたコードをマージし、試験的に動作をチェックするという様子は、開発現場ではよく目にします。

マージした結果、何かしら不具合が発生したようであれば、Gitの機能を使ってすぐにマージ前の状態に戻して、再度開発ができるのです。開発中に発生するトラブルに対しても、柔軟に対応できるのはうれしいポイントだと言えます。

Gitのデメリット

Gitは使用することによって得られるメリットも多いですが、当然ながら一部デメリットも存在します。特にデメリットとして取り上げられるのが、「CUIのスキルが必要である」という点です。

CUIのスキルが必要

Gitは誰でもすぐに扱える便利ツールではなく、企業では研修に含めることも多いスキルが必要なツールです。なぜかというと、基本的にはCUI(文字による操作)で扱っていく必要があるから。

CUIとは、コマンドラインなどを活用し、文字を打ち込むことでコンピュータと対話をする操作手法です。
皆さんがマウスを使って何かをクリックしてコンピュータを操作する手法は、GUIであり、CUIに比べて大衆的な手法であると言えます。

GitにもGUIで操作可能にする周辺技術が存在しますが、やはり根本的にGitを扱おうと思うと、CUIによるコマンド操作が必要とされるケースも出てきます。
GUIが一般的となった現代において、CUIのスキルがある程度必要とされるのは、少しばかり使用ハードルが上がってしまっていると言わざるを得ません。

まとめ

Gitは一般的なテキストファイルを管理する目的でも利用される、汎用的なバージョン管理システムです。適切に運用できるようになれば、エンジニアとしても、一般のビジネスマンとしてもより効率的に仕事を進められるようになるでしょう。

SHARE