LINEで現役エンジニアに直接質問してみよう!登録無料

【git入門基礎】Gitとは?初心者向けに特徴などの基礎知識を解説する!

Gitとは、Linuxカーネル作者のリーナスさんが作った「バージョン管理システム」です。

バージョン管理システムをわかりやすく例えると、Excelでファイルを更新していくと、「あの日更新した内容ってなんだっけ?前の内容に戻せないかな?」と思う時思う時、ありますよね。前の内容、更に前の内容といったように、その時々のバージョンを管理してくれるシステムが「バージョン管理システム」です。

プログラマだけではなく、WebデザイナーやWebライターでも利用され、今ではITに関わる人の必須知識となりました。

すごく便利な機能なのですが、イマイチぴんと来ておらず、「難しそう」「専門用語がありすぎて使いにくそう」みたいに思っている人もいるのでは無いでしょうか?

この記事では、これからGitをつかってみようと思っている人にはまず理解してほしい内容をまとめました。

Gitを使えばどんな事が出来るようになるの?

Gitを使えば、下記のようなことが簡単に出来るようになります。

  • どのような理由で何処をどんな風に変更したのかすべての履歴を残せる
  • 開発者それぞれのPCで同じファイルを編集して保存し、それらをいつ合体させるのかを調節したり出来る
  • 履歴を「リポジトリ」と呼ばれる単位でローカルとサーバー又は複数台に分散させて管理出来るので、データの消失しにくい
  • テキストデータだけではなく、画像などのバイナリデータも管理できる

このような、開発者向きの便利な機能が沢山揃えられているので、今のITやデザイナーにとって必須のツールと言えます。

Gitをもっと知りたい!

先程も解説したように、Gitとは「バージョン管理システム」の事です。バージョンとは、ファイルの「版」のことです。版管理とは、「いつ、誰が、なんの目的で、どのような変更をしたか」を管理します。

この管理を行うことで、「後で内容をあの時に戻したいなー」と思ったら思ったら、履歴をさかのぼって見つけて変更することが出来ます。

詳しくは、下記に詳しいスライドがあるので、見てみてください。

MEMO

Q: GitとGitHubは何が違うの? A: Gitは、

  • ファイルの変更履歴を管理できるバージョン管理システム

GitHubは、

  • Gitを使い、より便利にチーム開発を行えるようにしたWebサービス
  • みんなが書いたソースコードを共有&レビュー出来るコミュニケーションとしての場所

という違いがあります。

Gitとは?Google、Microsoft、Facebookでも使われている

Gitはその中での一番有名で、ITに関わる人のほとんどがGitを使い、Google、Microsoft、Facebookなど世界中の超大手有名企業でも積極的に利用されています。

なぜGitが生まれたのか?背景を理解しよう

Gitが生まれた背景には、ファイルを編集しようとした時、大事なファイルデータが消えたりどこに行ったかわからなくなったり、いろいろな問題が発生するためです。特に、複数人の場合にはよく起こります。

例えば、なにか元のファイルを失わないまま、ファイルの書き換えを行いたい場合、保存用としてコピーを取っておくのが一般的ではないでしょうか?しかし、この方法には問題があります。

  • 元のデータをどこに保管したらよいかという問題
  • 6月_meethig.txt最新_meethig.txt、と違う名前のファイルが月ごとにファイルが増えていく問題
  • データを複数人で編集してもらうと、どのファイルが最新のものなのかわからなくなる問題
  • 複数人で同じファイルを編集して、保存した時間差によって他人の内容を消してしまった。
  • 前のバージョンの方が良かったので戻したいけれど、どれに戻せばよいかわからなくなる問題
  • なぜ、ファイル編集を行ったのか理由がわからなくなる問題
  • 誰がファイル編集を行ったのかわからなくなる問題

ざっと、このくらいの問題があるのです。

このような問題を解決するために、Gitは作られました。 今のGitのを使うと、このような問題は一気に解決できます。

Gitの特徴は?他のバージョン管理システムとはどう違うのか?

バージョン管理システムにはいくつかの種類があります。Gitの次に有名なのが、「subversion」です。

subversion は、1つの保存場所をみんなで共有します。そのため、同じタイミングでファイルを追加すると、どちらかにエラーが発生してしまいます。 数人で使っているときはなんとか回るかもしれませんが、それ以上になるとエラーが発生し続けてしまいし、使うのが辛くなってきます。 今では、昔から開発しているプロジェクトで使われるのみになっており、新しくsubversionを選択する理由はなくなりました。

それに対してGitは、保存場所をそれぞれのPCにダウロードして管理します。どれだけの人数がいても自分のPCで管理しているので、エラーが発生することはありません。ファイルを1つの場所で管理したくなったときは、専用のコマンドでアップロードを行い、万が一同じファイルが編集されていた場合は、どのように合わせるのか管理者によってによって決めることが出来ます。

Gitで何をどのように管理できるのか?何が嬉しいのか?メリットはなにか?

Gitを使えば、何が管理できてどう嬉しいのかを解説します。

誰がいつ、どういう理由でファイルを変更したのかが分かる

過去のファイルに戻せる

履歴を含めて、チームで共有できる

この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。