こんにちは。ステックアップアカデミー講師のかびらです。現役のITエンジニアであり、かつAFP保持者として、このチャンネルを通して、ITエンジニアとフリーランスに必要な、ITとお金に関する情報を配信しています。
今回から、「イメージで学ぶGit解説♪」シリーズをスタートします。このシリーズでは、Gitの仕組みや操作をイメージを用いて、初心者にもわかりやすく解説します。
まずは入門編として、Gitとは何か、そしてGitの基本操作について解説します。
Gitとは?
Gitは「分散型バージョン管理システム」として知られていますが、初心者にはこの言葉だけではイメージしにくいかもしれません。Gitがどのようなもので、何ができるのか、詳しく説明します。
Gitでできること
Gitを使用することにより、「ソースコードやファイルの管理」が可能です。しかし、「ソースコードやファイルの管理」と聞いても具体的に何ができるのかがわかりにくいかもしれません。そこで、Gitでできる代表的なことを3つご紹介します。
①ファイルの変更履歴の管理と追跡:
Gitを使うと、ファイルの変更履歴を保存し、任意の時点の状態に簡単に戻ることができます。
②ブランチの操作とマージ:
ブランチを使い、同じソースコード上で異なる作業を並行して進めることができます。作業が完了したら、その変更をメインブランチに統合(マージ)できます。
③チームでの共同作業:
Gitにはマスターリポジトリという概念があり、チームメンバーはこの共有リポジトリをベースにして作業を進めます。各自が専用ブランチを作成し、作業後にメインブランチに変更を統合することで、効率的な共同作業が可能です。
Gitの特徴
次に、Gitが他のバージョン管理システムとどう異なるか、その特徴を見ていきましょう。バージョン管理システムにはGit以外にも様々な種類がありますが、Gitの特徴は「分散型」という性質にあります。
ここでは、他の類似するバージョン管理システムであるSVNと比較してみましょう。SVNは集中型のバージョン管理システムですが、Gitは分散型です。この違いを上記のイメージで説明します。
両システムともリモートのマスターリポジトリを使用しますが、ローカルでの動作が異なります。集中型のSVNでは、ローカル作業でもリモートのマスターリポジトリに直接アクセスします。一方で、分散型のGitでは、各ユーザーのローカル環境に完全なリポジトリが存在します。これにより、ローカルでの変更はローカルリポジトリに保存され、後でリモートのマスターリポジトリと同期されます。Gitが「分散型」と呼ばれる理由は、このローカルに完全なリポジトリのコピーを持ち、独立して作業を進めることができるからです。
Gitの基本操作
ここでは、Gitの基本操作を学んでいきます。
ブランチの作成
Gitでの作業を開始する際、通常は新しい作業用ブランチを作成します。ブランチの作成方法は、既存のブランチを複製することで行います。
例えば、「コミット履歴①」を持つマスターブランチがあるとします。新しいブランチを作成する際には、このマスターブランチから派生させ、新しい派生ブランチを作ります。この操作により、マスターブランチと新しい派生ブランチは作成時点で同じファイルの内容を持ち、「コミット履歴①」も複製されます。
コミット
派生ブランチでファイルの内容を変更した場合、これらの変更を記録し、永続的に保存する操作が「コミット」です。コミットを行うと、コミット履歴が増え、「コミット履歴②」が「コミット履歴①」の上に追加されます。
プッシュ
ローカル環境での変更をチームメンバーと共有するためには、「プッシュ」という操作が必要です。プッシュを行うと、ローカル環境の変更がリモートに反映され、他のメンバーもこれらの変更を見ることができます。
マージ
リモートへプッシュした派生ブランチの変更をメインのマスターブランチに統合するには、「マージ」という操作を行います。マージを実行すると、派生ブランチのファイル変更点がマスターブランチに取り込まれ、そのコミット履歴がマスターブランチの履歴に統合されます。
プル
リモートのマスターブランチにマージした後、その最新の状態をローカルのマスターブランチにも反映させるためには、「プル」という操作を使います。プルを実行することで、リモートの最新の変更がローカルのマスターブランチに適用され、両環境が同期されます。
フェッチ
ローカル環境にもリモートブランチの情報が存在しますが、これは自動的にリモート環境のリモートブランチの内容と同期されません。他のチームメンバーがリモート環境のリモートブランチに変更を加えた場合、ローカルのリモートブランチ情報は古くなりがちです。この情報を最新に更新するには、「フェッチ」を行います。フェッチはリモートの最新情報をローカルのリモートブランチに反映しますが、マージは行わず、ローカルの作業ブランチはそのままです。
さいごに
今回はここまでです。今回は、Gitの概要から基本操作まで説明してきました。次回は、実際の開発環境を使って、Gitの操作を確認していきたいと思います。JavaのSTSとPythonのPyCharmを使って実演予定ですのでお楽しみに。