SoLA2-TechBlog

退屈な作業はプログラムに任せましょう!日々の作業に少し工夫を足すだけであなたの時間はもっとクリエイティブになる。

専門用語少なめ!GIT入門-バージョン管理の必要性とリポジトリ【基礎知識シリーズ】

f:id:gootor3030:20180827002919j:plain

概要

皆さんこんにちは、SoLA2です。

基礎知識シリーズ第4回目です。今回のテーマはGit入門ということで、バージョン管理の必要性とリポジトリについて紹介します。Gitというと少し堅苦しくて使いたくないな・・・と感じるかも知れませんが、「ファイルのバージョン管理をしてくれる仕組み」と考えれば少しは興味が沸くのではないでしょうか?

バージョン管理とは

チームで開発をしたことのあるエンジニアであれば必要性について説明するまでも無いですが、実は「個人で開発をしている方」にとってもバージョン管理システムは有用なものです。

個人で開発していると、ファイル名の末尾に文言を加えたりしてバックアップを取った経験はありませんか?これは手軽にファイルをバックアップできる手段ですが、末尾に追加できる内容は精々バックアップ日時程度ではないでしょうか。

それに比べ、バージョン管理システムであれば、ほぼ無制限で備考を記録しておくことができます。さらに手動でバックアップしていると、どうしても「バックアップのし忘れ」という悲劇が起こり得ます。

そこで!ファイルの変更を自動で監視してくれるバージョン管理システムの出番というわけです。

Gitとは

Gitは、リモートで大規模なシステムを開発する際、「効率的にファイルのバージョン管理をするため」に生み出されました。具体的にバージョン毎に何を管理しているのかを下記に示します。

  • いつの更新なのか
  • 誰が更新したのか
  • どのファイルを更新したのか
  • ファイルのどこを更新したのか
  • どのような変更内容なのか
  • どのような備考を残したのか

上記の情報を参考に、現行のファイルを過去のバージョンに戻すことができます。要はファイル管理に必要な情報を効率的に残してくれて、必要に応じてバックアップ時点にファイルを巻き戻してくれるシステムなのです。

リポジトリ

上述したように、バージョン管理には様々な情報を保存しておく必要があります。その保存場所の事をリポジトリと呼びます。

基本的にバージョン管理する対象は何かのプロジェクト(ファイル群)であるケースがほとんどですので、プロジェクトのルートディレクトリ(一番上の階層に存在するフォルダ)配下をリポジトリで管理するように設定することで、プロジェクトのバージョン管理をします。

ローカルリポジトリとリモートリポジトリ

リポジトリには作業PC内のリポジトリと、オンライン上で管理しているリポジトリの2種類が存在します。

ローカルリポジトリ

ローカルリポジトリは実際に作業をするリポジトリを指し、自分専用のリポジトリです。基本的には作業PC内で管理します。

リモートリポジトリ

リモートリポジトリはネットワーク上で管理します。それぞれの作業は、ローカルリポジトリで行い、最終的な内容をリモートリポジトリに反映します。この場合リモートリポジトリの内容が常に正であるという考えが基本です。

このようなバージョン管理の方法を分散型と呼びます。分散型のバージョン管理を採用することでリモートで複数人が開発する際に、ファイルが前のバージョンに戻ってしまったり、バージョンが無造作に増えてしまうリスクを軽減できます。

SVNとの違い

バージョン管理システムでGitと同じくらいよく耳にするのがSVNです。Gitとの大きな違いはリポジトリの持ち方です。上記で説明したとおり、Gitはリポジトリを複数生成してバージョンを管理します。それに対してSVNはリポジトリ1つでバージョン管理する仕組みです。

そのため、チームで開発する場合はGitを使ったほうが無難です。個人の場合はどちらでもいいと思いますが、Gitを使っておけばソース公開するときも何かと便利ですし、私はGitをおすすめします。

まとめ

いかがだったでしょうか。今回はバージョン管理の必要性と、リポジトリについて学びました。バージョン管理は開発をする上で手間となるため適当にされがちですが、ファイルに何か会った場合に被害を最小限に押さえてくれる保険のようなものです。

次回は変更内容をローカルリポジトリへ反映する「コミット」について解説していきます。

ではまた。