Git入門

Gitは、ソフトウェア開発において非常に重要なバージョン管理システムです。

最近のソフトウェア開発において必須のスキルです。

また、生成AIの登場と爆発的な普及により、Gitの重要性はさらに増しています。

本コンテンツではGitの基本的な使い方を学びます。

Gitとは?

Gitとは、ソフトウェア開発においてコードのバージョン管理を行うためのツールです。

リーナス・トーバルズによって開発され、現在では世界中の開発者に広く利用されています。

Gitですがリーナス・トーバルズがLinuxカーネルというオペレーティングシステム(OS)の開発時に、
ソースコードを管理するために開発されました。

オペレーションシステムを開発するには、大規模なソースコードを管理する必要があります。
Git登場前には、CVSやSubversion(SVN)などの他のバージョン管理システムがありましたが、
満足いくものがなかったため、Gitが開発されました。

バージョン管理とは?

バージョン管理とは、ソフトウェアのソースコードやドキュメントなどの変更履歴を管理することです。
いつ、どこで、誰が、どのような変更を行ったかを記録し、過去の状態を調べたり、復元したりすることができます。

身近な例でいうと、Googleスプレッドシートやエクセルの「変更履歴」機能がバージョン管理の一種です。

Gitの特徴とリポジトリ

Gitはリポジトリという単位でコードのバージョン管理を行います。
リポジトリとはファイルやディレクトリのバージョン管理をするための場所です。

リポジトリとは一般的に、「倉庫」や「保管庫」といった意味を持ちます。

箱のようなものにソースコードとその変更履歴を保管するイメージです。

リポジトリ

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

リポジトリには、リモートリポジトリとローカルリポジトリの2種類があります。

  • リモートリポジトリ: インターネット上に存在するリポジトリで、複数の開発者が共有して使用します。
    GitHubやGitLabなどのサービスが提供しています。

  • ローカルリポジトリ: 自分のコンピュータ上に存在するリポジトリで、個人の作業用に使用します。リモートリポジトリと連携して作業を行います。

この2つのリポジトリを使い分けて開発を行います。

個人の作業はローカルリポジトリで行い、完成したらリモートリポジトリに変更をアップロード(Gitの世界では「プッシュ」と呼ばれます)します。

次にリモートリポジトリで変更の確認と共有を行い、問題なければリモートリポジトリに変更を反映します。

その後、他の開発者がリモートリポジトリから最新の変更を取得(Gitの世界では「プル」と呼ばれます)して作業を続けます。

このフローを繰り返すことで、複数の開発者が効率的に協力してソフトウェアを開発することができます。

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

このリモートリポジトリとローカルリポジトリの仕組みのおかげで、開発者はどれだけ離れた場所でもインターネットで繋がっていれば、同じプロジェクトに参加することができます。

私が岩手県に住みながら、東京の企業の案件に参加できるのも、この仕組みのおかげです。

またリモートリポジトリはバックアップとしても機能します。

万が一、ローカルリポジトリが壊れたり、ローカルリポジトリを管理しているパソコンが壊れたりしても、リモートリポジトリに最新の変更が保存されていれば、復元することができます。

では次のセクションでは、Gitのセットアップ(環境構築)を学んでいきましょう。