はじめに
プログラミングの学習を進めるにあたり、分からないことはたくさんあったがそのうちのひとつが「Git」でした。
復習も兼ねて、初めてGitの概念を知る人がわかりやすく理解できるように、イラストを交えて記事を作成しました。
理解の補助になれば幸いです。
まずGitとは?
Gitとは「ソースコードをバージョン管理するためのツール」です。
なんじゃそれ?って思いますよねw
具体例で説明してみます。
例えば仕事であるお店のHPを作ることになったとします。
クライアントといろいろ調整しながら進めていく過程で、ソースコードもどんどん更新されていきます。
こうした変化していくファイルの状態のことを「バージョン」といいます。
後から「間違ったから一回データを戻したい!」って思ったときのために、ファイルの変更履歴は残しておきたいですよね?
こういう時に「ファイル名を変えてコピーしバックアップをとる」という方法があります。
似たような方法を試したことがある人も多いのではないでしょうか?
イメージとしてはこんな感じ
確かにこうすれば過去のデータを残しておくことはできるのですが、
- 統一的な管理が難しい
- 1回1回のバックアップに手間がかかる
などの問題があります。
またこの方法では【完成版】と【最終版】があり、結局どれが最新データなのか分からないのも困りますよね。
Gitという概念が出てくるまではこのような方法でしかバージョン管理はできませんでしたが、Gitの登場によっていちいちファイルを別で保存する必要がなくなりました。(スゴいね!)
Gitは、いつでも記録したバージョンに戻ってデータを参照することができます。
Gitを使えば複数人で同一ファイルの共有ができる
バージョン管理が確実にできるということは、ファイルの最新状態や変更履歴の把握が容易になるということです。
そのため複数人で1つのファイルを共有し、共同でプロジェクトに取り組むことが可能になります。
これがおおまかなGitの概念です。
GitHubというのは、こうしたGitの仕組みを利用したwebサービスのことです。
コミット=バージョンのこと
Gitについて調べていると「コミット」という言葉がよく出てきます。
上でバージョンという言葉について説明しましたが、コミットとはまさにこのバージョンのことを指します。
ソースコードは自動的に保存されていくわけではないので、それぞれのユーザーがそれぞれのタイミングで保存していかなくてはなりません。
その保存操作によって作られたバージョンのことを「コミット」といいます。
このコミットのおかげで、いつでも過去の状態に戻したりコミット間を行き来したりすることができるようになります!
ゲームでいう「セーブ機能」のようなものですね。
ここで記録されるのはファイルの状態だけではなく
- いつ変更されたか?(when)
- 誰が変更したか?(who)
- どんな変更だったか?(How)
などの情報についても記録されます。
なのでいちいち「AとBをこのように変更しました!」と口頭で説明しなくても、コミットを見れば詳しい変更内容が分かるようになるということです。