Gitを利用する目的について、
制作物の履歴管理が大変になっていく経緯から図入りで解説します。
IT エンジニア以外に Git を使ってもらいたい方が、
周囲へ説明する手助けになるとうれしいです。
対象読者: 中学生以上
読み終えるまでにかかる時間: 15分程度
Linux 知識の要らない Git 講座 目次にもどる
目次
あらゆる人が何かを作っている
私たちは学校や社会で
コンピューターを使って様々なものを作り、
誰かに提出したり公開したりします。
大学生なら論文やレポートだったり、
中学生や高校生でも、クラブ活動や生徒会で
記事や台本を書いたりすることがあるかもしれません。
先進的な学校なら、
もしかしたら読書感想文や自由研究などの宿題も
コンピューターで提出することもあるかも?
社会人なら、資料や表、手順書や規則などを作りしますし、
特にクリエイティブな仕事を行う人であれば、
料理のレシピだったり、ホームページやプログラムなどを作ったりします。

作るものの例:
- 論文
- レポート
- 記事
- 台本
- 読書感想文や自由研究などの宿題
- 資料
- 表
- 手順書
- 規則
- レシピ
- ホームページ
- プログラム
- etc…
一度の提出・公開で済むことは珍しい
私たちが作った制作物は、一旦作り終えたあと、
自分で推敲をしたり、誰かに提出して確認してもらったりします。
また、確認のあと、公開されたり利用されたりするものであれば、
その反応や手応えをもとに、内容をより良いものにしていくこともあります。

例えば、高校までの国語、算数、理科、社会、英語などの宿題は
一度の提出で終わる可能性が高いです。
これは、先生が提出された宿題を確認するポイントが
「授業で教えた方法に従って問題を解いているか」で、
比較的、明確な「正解」があります。
それに対し、この記事で例示した作るものの例などは
明確な「正解」がわかりにくく、
何度も確認や公開を繰り返して、
より「正解」に近いものに作り変えていく必要があります。
作ったものの最新版以外が必要になる
例えばこんなことが起きたらどうなるでしょうか?
あなたは、あなたが作ったものを提出し、提出先の人と内容を確認し、
一旦受理され、仮の制作物として利用されることになりました。

しかし、制作物の内容が本来作るべきものの趣旨と異なっていることに気付き、
より良いものにするため、修正して再提出することになりました。
これにはあと数日かかりそうです。
あなたは、あなたが作ったものに修正を加えていきます。

翌日、提出先の人から再度あなたに連絡がありました。
「昨日提出してもらったものに、『利用する上で不都合な部分』が見つかったので
急いで直してほしいです」
『利用する上で不都合な部分』とは、たとえば以下のようなことです。
利用する上で不都合な部分の例:
制作物 | 利用する上で不都合な部分の例 |
---|---|
文章 | 誤植、画像の貼りまちがい |
表 | 計算の誤り |
手順書・規則 | 実行不能な内容、他の手順書・規則との不整合 |
ホームページ | 表示されない |
プログラム | 影響の大きいバグや不具合 |
このとき、手元の制作物には既に大きな修正を加えていて
その修正が完了するまでには、まだ数日かかってしまいます。
急いで直すには、手元の制作物ではなく、
最初に提出した時点の制作物が必要になります。

これが、作ったものの最新版以外が必要になる理由です。
修正を行うことができる場合もありますが、
例えば、コンピューターで作った制作物を
印刷して提出していた場合などは、
それをもとに修正を行うのは大変な作業になります。
そのため、提出した制作物とは別に、
いつでも修正できる状態のものをどこかに保管しておく必要があります。
最新版以外への修正作業は最新版にもする必要がある
先日提出した時点の制作物に『利用する上で不都合な部分』が見つかりましたが
手元にある最新版を既に作り変えていたため、
あなたが念のため保管しておいた、
先日提出した時点の制作物に修正を加えて再提出しました。
この『利用する上で不都合な部分』は、
手元にある、あなたが修正中の最新版にも含まれている可能性があり、
最新版に対しても同じ修正作業を行う必要があります。

この修正作業を正確に行うためには
次のような大変な作業を行う必要があります。
※大変であることが認識できれば、今すぐ正確に理解する必要はありません。
手元の最新版も修正するための作業
1.
先日提出した時点の制作物に行った修正の箇所と内容を調べて、すべてメモします。
2.
手元の最新版に行った修正の箇所と内容を調べて、すべてメモします。
3.
手順1.で調べたすべての箇所について、次の作業を行います。
3-1.
手順2.で調べた修正の箇所と同じ箇所を修正していないか確認します。
3-2.
同じ箇所を修正していない場合、
先日提出した時点の制作物に行った修正を行います。
3-3.
同じ箇所を修正しており、修正内容が異なる場合、
それぞれの修正内容を確認して、どのように修正するかを考えて
適切な修正を行います。
この大変な作業のほとんどを自動的に行なってくれるツールが
Gitを始めとする『バージョン管理ツール』です。
『バージョン管理ツール』を使ったほうがよい理由として、
「今までの変更履歴を簡単に確認できること」
があります。
長い間、何かを作り続けていると、
「なんでこういう風に作ったんだっけ?」
と、作ったときの意図を忘れてしまい、
新たに作り変えるときに、
どのように作り変えるべきかわからなくなってしまうことがあります。
『バージョン管理ツール』を使うと、
誰がいつ、どのような変更を行ったのかを
後から簡単に確認できるので、
『バージョン管理ツール』を使って変更の履歴を管理しておくと便利です。
Gitは様々なところで利用されている
『バージョン管理ツール』にはいくつかの種類があり、
各ツールごとに違いがあります。
バージョン管理ツールの例:
- Git
- Subversion
- Mercurial
- etc…
それぞれに違いはあるのですが、
Gitをより便利に利用できるようになる
『GitHub』というWebサービスが大流行したため、
それにともなって、
『バージョン管理ツール』を利用するときには
Gitが採用されることが多くなりました。
現在では、動画や音声などの巨大なメディアファイルを除く多くの場面で
『バージョン管理ツール』にGitが使われます。
以下は主要な『バージョン管理ツール』のGoogle検索数の推移です。

また、『GitHub』には世界中の人々が作った様々な制作物が公開されています。
Gitを習得することで、この世界中の制作物を
簡単に、より便利に使うことができるようになります。