Gitを学ぼうとしたとき、多くの人が最初にコマンドの一覧を覚えようとします。git init、git add、git commit。コマンド自体は難しくありませんが、「なぜこの操作が必要なのか」がわからないまま進むと、少し複雑な状況に直面したときに対処できなくなります。この記事では、Gitのコマンドより先に、バージョン管理という考え方そのものを整理します。

バージョン管理がないと何が困るか

ファイルを編集していて「3日前の状態に戻したい」と思ったことはありますか。バージョン管理がなければ、上書き保存したファイルを元に戻す方法はありません。「report_final.docx」「report_final2.docx」「report_final_修正版.docx」のようなファイル名で管理している方も多いと思います。Gitはこの問題を解決するためのツールです。変更の履歴を記録し、任意の時点に戻せるようにします。

コミットとは何か

Gitの中心的な概念は「コミット」です。コミットとは、ある時点のファイルの状態に名前をつけて保存する操作です。写真を撮るようなイメージが近いかもしれません。コミットを積み重ねることで、プロジェクトの変更履歴が時系列で記録されます。後からどのコミットに戻ることもできますし、2つのコミットの差分を確認することもできます。コミットメッセージには、その変更で何をしたかを簡潔に書きます。

ブランチを使う理由

ブランチは、メインの作業ラインから分岐して別の作業を行うための仕組みです。たとえば、動いているコードに新しい機能を追加したいとき、メインのコードを直接変更するのはリスクがあります。ブランチを作ることで、メインのコードを安全に保ちながら、別の場所で新機能の開発を進められます。作業が完了したら、ブランチをメインに統合(マージ)します。チーム開発ではこの流れが基本になります。

GitとGitHubの違い

GitとGitHubは別のものです。Gitはバージョン管理のソフトウェアで、自分のパソコン上で動きます。GitHubはGitのリポジトリをインターネット上に保存・共有するためのサービスです。GitHubを使うことで、複数人が同じプロジェクトに参加したり、自分のコードをバックアップしたりできます。Gitを理解してからGitHubを使う順番が、混乱が少なくて済みます。

Gitの概念を理解した後でコマンドを覚えると、操作の意味がわかるので定着が早くなります。Majestash HarborのGit入門コースでは、この記事で扱った概念を図解と演習で丁寧に学べます。