【初心者向け】GitHubとは?使い方を1からわかりやすく解説

本ページはプロモーションが含まれています
IT-Skills

GitHubとは、プログラムのコードを書いたり、それを共有したり、改良したりするためのオンラインのプラットフォーム。具体的に説明すると、GitHubとはGitというバージョン管理システムを基にしたオンラインのサービスです。

参考 構成管理とは?

バージョン管理システムとは、一言で言うと、あなたが作成したファイルの変更履歴を記録・管理するシステムのことGitはその一つで、特にプログラムコードの管理に優れています。

GitHubはこのGitをインターネット上で利用できる形にしたもので、多くの開発者がGitHubを通じて、コードを保存し、他の人と共有し、一緒に改良していくためのツールです。

GitHubがなぜ世界中で利用されているか?その重要性を簡単に整理しておきます。

GitHubの重要性
  • チームでの協力: GitHubを利用すると、チーム全体で一つのプロジェクトに取り組むことができます。チームメンバーはそれぞれのタスクを別々に行い、それをプロジェクトに統合することができます。
  • バージョン管理: GitHubを使うことで、あなたのプロジェクトの全ての変更履歴を追跡することが可能になります。これにより、以前のバージョンに戻すことや、どの変更がいつ、誰によって行われたかを確認することができます。
  • コードの公開と共有: GitHubはあなたのプロジェクトを公開する場でもあります。そのため、他の開発者があなたのプロジェクトを見つけ、利用したり、改善したりすることが可能になります。

以上のような理由から、GitHubは世界中の開発者や企業に利用され、ソフトウェア開発の中心的なツールとなっています。

この記事では、GitHubの基本的な概念とその使い方について、初心者の方でも理解できるように説明していきます。

このページで学べる内容
  • Githubとは何か
    • Githubの概要
    • バージョン管理システムとは何か
    • GitとGithubの違い
  • GitとGithubの基本概念
    • リポジトリ(リモートとローカル)
    • ブランチとマージ
    • コミットとプッシュ
    • プルリクエストとマージリクエスト

プログラマーやシステムエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識の1つです。是非最後までご覧ください。

blank

スキルアップを手軽に!
話題のサブスク型プログラミングスクールをご紹介。

SAMURAI TERAKOYAblank
月額2,980円から始める-入会金不要/途中解約自由。無料体験プランからスタート可能!​
飲み会1回分以下の料金で継続的なスキルアップを。

Freeks(フリークス)
blank
月額10,780円でJavaScript、Pythonなどのカリキュラムが
学び放題
質問し放題転職サポート制度あり。

ウズウズカレッジ/CCNAコース用
月額33,000円(税込)〜インフラエンジニアの登竜門「CCNA」取得を目指す。
コース受講→転職成功で【実質全額無料】(最大240,000円)

スポンサーリンク

Githubとは何かをわかりやすく

GitHubとは、ソフトウェア開発者が「①自分のコードを他の開発者と共有」し共同でプロジェクトを進行するためのプラットフォームであり、「②そのコードのバージョン管理も可能」なオンラインサービスです。

Githubとは?
図1:Githubとは?

基本的にはオープンソースのプロジェクトに対して無料で提供されており、プライベートリポジトリを作る場合や企業向け機能を使用する場合には有料プランが存在します。

GitHubは全世界の開発者に利用されており、その数は5000万人を超えると言われています(2023年6月現在)。また、多数のオープンソースプロジェクトがGitHub上で管理・開発されています。

これにより、誰でも簡単にコードを共有したり、他人のコードを改善したり、新しいプロジェクトに参加したりすることが可能になります。

GitHubを使うと、他の開発者とのコラボレーションが格段に簡単に。自分が開発したソフトウェアやライブラリを公開し、他の人々に利用してもらうこともできるという点で、プログラマーを目指す方であれば当たり前に利用できないと恥ずかしいツールの1つです。

バージョン管理システムとは何か

そもそもバージョン管理システムって何?という点をご説明しておきます。

バージョン管理システムとは、ファイルの変更履歴を記録し、過去のある時点の状態を再現したり、変更内容を比較したりすることができるシステムのことを指します。

バージョン管理システムとは
図2:バージョン管理システムとは?

特にソフトウェア開発では、何百、何千ものコードファイルが存在し、それらが頻繁に更新されるため、どのバージョンが最新で、どのバージョンにどのような変更が加えられたかを把握することが重要となります。

GitとGithubの違い

「Git」と「GitHub」の違いについて説明します。

簡単に言うと、「Git」はバージョン管理システムそのものであり、「GitHub」はそのGitを利用して、コードの共有やバージョン管理を行うためのプラットフォームです。

gitとGitHubの違い
図3:gitとGitHubの違い

Gitは、開発者がローカル環境でコードの変更履歴を管理するためのツール。これにより複数の開発者が同時に異なる部分のコードを編集することが可能になります。

その一方で、GitHubはこのGitのシステムをWeb上で利用できるようにしたもので、開発者同士が容易にコードを共有し、協力して作業を進めることを可能にするという役割を担います。

GitHubとは?
  • GitHubとは: GitHubはソフトウェア開発者が自身のコードを他の開発者と共有し、協働して作業を進めるためのプラットフォーム。それらのコードのバージョン管理も行うことが可能。
  • バージョン管理システム: バージョン管理システムとは、ファイルの変更履歴を記録し、過去のある時点の状態を再現したり、変更内容を比較したりすることができるシステムのこと。
  • GitとGitHubの違い: Gitはローカル環境でコードの変更履歴を管理するためのツール(バージョン管理システム)。GitHubはこのGitのシステムをWeb上で利用できるようにしたプラットフォーム。

GitHubの基本

GitHubを理解するために必要な基本的な概念を説明します。

4つの重要な要素、レポジトリブランチコミット、そしてプルリクエストについて説明します。

用語説明
レポジトリプロジェクトに関連するすべてのファイルとその履歴が格納される場所。
プロジェクト全体の情報を一元管理します。
ブランチレポジトリの特定のバージョンを示し、独立した作業空間として機能。
基となるブランチの状態からコピーされ、そこから新たな作業が始まります。
コミットブランチに対する一連の変更を記録する行為。
作業の進捗を保存し、特定の時点に戻るためのマーカーとなります。
プルリクエスト一つのブランチから別のブランチへの変更を統合するためのリクエスト。
コードレビューと変更の討議を行うためのツールでもあります。
表1:GitHubの基本

まずは、GitHubを理解するための根幹となるリポジトリとは何か?について解説をします。

GitHub:リポジトリ(リモート/ローカル)

まずはじめに結論からお伝えします。

Gitにおける「リポジトリ」とは、プロジェクトのファイルやその変更履歴を管理する場所のことを指します。これらのリポジトリは、主に「リモートリポジトリ」と「ローカルリポジトリ」の2つの形で存在します。

Gitにおける「リポジトリ」は、単に言うと、あなたのプロジェクトのすべてが保存されている場所です(プロジェクトの全てのファイルと、それらのバージョン履歴を保持)。

Github レポジトリとは
図4:Github レポジトリとは?

リポジトリにはコードファイルだけでなく、画像、PDF、データベース、あらゆるものを保管することができます。同時にリポジトリ内では、ファイルやディレクトリの追加、変更、削除などの操作履歴が全て記録されています。

リモートリポジトリとは

リモートリポジトリはインターネット上に存在し、複数の人がアクセスできる共有のリポジトリです。

リモートリポジトリとは?
図5:リモートリポジトリとは?

GitHubはこのリモートリポジトリをホストするサービスの一つで、開発者たちはGitHub上にリモートリポジトリを作成し、ローカルリポジトリのコードをプッシュ(アップロード)することで、他の開発者と共有します。

ローカルリポジトリとは

一方ローカルリポジトリとは、リモートリポジトリのコピーを開発者の自身のマシン上に作成したものです。

ローカルリポジトリとは
図6:ローカルリポジトリとは

このリポジトリは各開発者の個別の作業スペースとなり、他の開発者から独立して作業を進めることができます。

開発者はこのローカルリポジトリでコードの編集やデバッグなどの作業を行い、その作業結果をコミットという形で保存します。

ローカルリポジトリとリモートリポジトリの連携

開発者がローカルリポジトリで一通りの作業を終えて結果を保存(=コミット)します。

ただし、その状態ではまだリモートリポジトリには反映がされていません。その結果をリモートリポジトリに反映させるためには、ローカルリポジトリからリモートリポジトリへ変更を"プッシュ"という作業を行います。

そして、その変更がリモートリポジトリにマージ(統合)され、他の開発者と作業結果を共有することができるという流れ。

このローカルリポジトリとリモートリポジトリとの間で変更をやり取りすることにより、多くの開発者が一つのプロジェクトに協力して作業を進めることが可能になるという仕組みです。

Github:リポジトリのまとめ
  • リポジトリ: リポジトリは、プロジェクトのファイルやその変更履歴を管理する場所。リポジトリにはコードファイルだけでなく、画像、PDF、データベース、あらゆるものを含めることができ、ファイルやディレクトリの追加、変更、削除などの操作履歴が全て記録されている。
  • リモートリポジトリ: リモートリポジトリはインターネット上に存在し、複数の開発者が共有できる共有のリポジトリ。開発者はローカルリポジトリからリモートリポジトリへ変更を"プッシュ"することで、他の開発者と共有する。
  • ローカルリポジトリ: ローカルリポジトリは、リモートリポジトリのコピーを開発者の自身のマシン上に作成したもので、開発者はこのローカルリポジトリで作業を行い、その結果をコミット(保存)。
  • ローカルとリモートの連携: 開発者がローカルリポジトリで作業を行い、それをコミットした後、その変更をリモートリポジトリにプッシュする。結果、他の開発者と協力してプロジェクトを進めることが可能になります。また、他の開発者がリモートリポジトリにプッシュした変更を、自分のローカルリポジトリにプル(ダウンロード)することで取得し、自分の作業に反映させることも可能。

GitHub:ブランチとマージ

レポジトリの説明の中で出てきたブランチマージについてご説明します。

まず始めに結論から。①「ブランチ」は作業の流れを分岐させ、新たな開発を行うための枠組みであり、②「マージ」はそれらの分岐した作業を再度統合するための操作です。これらは、多人数での開発や複数の作業を並行して進めるための重要な機能です。

ブランチとは

ブランチは、プロジェクトを進行させながら新たな開発を行うための道筋を示すものと考えることができます。

プロジェクト進行中に新しい機能を追加したい、またはバグを修正したいといった場合、そのままメインのコードに手を加えると他の部分に影響を及ぼす可能性があります。ここで役立つのがブランチです。

ブランチを作成すると、現在の開発の状態を元にした新たな作業スペースが作られます。これにより、メインのコード(通常はmasterまたはmainブランチと呼ばれます)を触らずに新しい機能の開発やバグの修正を行うことができます。

ブランチとは git
図7:ブランチとは

マージとは

ブランチで分岐した作業を元の開発の流れに戻す(統合する)ための操作がマージです。開発者がブランチ上で行った作業の結果をmainブランチにマージすることで、新たな機能や改善がプロジェクト全体に反映されます。

ブランチとは git
再掲:ブランチとは

もし、変更した個所が他のブランチと重複するような場合は、自動的にマージは行われず監理者の手によってどの変更をマージするか?を選択する必要があります。このような仕組みで、元の資源を保持しながら安全に変更をマージしていくことが可能になるのです。

ブランチとマージは、開発作業を効率よく、安全に進めるための重要なツールです。

ブランチを利用すれば、異なる作業を並行して進めることができ、マージによってそれらの作業結果をスムーズに統合することができます。特に、チームでの開発ではこのブランチとマージの概念が重要となり、一人一人の開発者が自由に作業を進めつつ、その結果を円滑に統合し、一つの製品を作り上げるために利用されます。

Github:コミットとプッシュ

コミットとプッシュという基本的な用語について解説します。

①コミットとは開発者が行った変更をローカルリポジトリに保存する操作で、②プッシュはそれらの変更をリモートリポジトリに反映させる操作です。これらの機能を理解することで、個人やチームでの開発作業がスムーズに進むようになります。

コミットとは

コミットとは、Gitにおいて行った変更を保存する操作です。ファイルの追加や修正、削除など、あなたが行った全ての変更を「スナップショット」として保存します。コミットはそれぞれ固有のIDを持ち、このIDによって特定の変更を指定したり、過去の状態に戻したりすることができます。

コミットとは

図8:コミットとは

コミットを行う際には、その変更に関するメッセージを記述します。これにより、あとからそのコミットが何を含んでいるのかを理解するのが容易になります。

プッシュとは

コミットはあくまでローカルリポジトリ(つまりあなたのマシン上)に対して行われる操作で、これにより行った変更は他の開発者からは見ることができません。

開発者が行った変更を他の人と共有するためには、それらの変更をリモートリポジトリに反映させる必要があります。

これを行う操作がプッシュです。プッシュを行うと、ローカルリポジトリに行われたコミットがリモートリポジトリに反映され、これにより他の開発者もその変更を見ることができるようになります。

プッシュとは
図9:プッシュとは

コミットとプッシュは、開発作業の効率と共有性を保つための重要なツールです。コミットを利用すれば、作業の進捗を定期的に保存し、必要に応じて過去の状態に戻すことができます。また、プッシュによってこれらの変更を他の開発者と共有し、一緒に作業を進めることができます。

これらの操作は、一人での開発はもちろん、チームでの開発においても非常に重要で、開発者がそれぞれの作業を進めつつ、その結果を共有し、一つの製品を作り上げるために利用されます。

GitHub:プルリクエストとは

最後にプルリクエストという用語について解説します。

結論から言うと、プルリクエストとは自身が行った変更を他の開発者にレビューしてもらい、問題がなければメインのブランチに統合(マージ)するためのリクエストのこと。

このリクエストが承認されれば、あなたが行った変更はメインのブランチに統合され、プロジェクト全体で反映されるわけです。

一般的な開発フローでは、新たな機能の開発やバグの修正は個別のブランチで行われます。そのブランチでの作業が終了したら、その変更をメインのブランチに取り込む必要があります。しかし、直接統合するのではなく、他の開発者にレビューしてもらうことで、問題がないか確認するのが一般的。

ここで行うのがプルリクエストです。プルリクエストを行うことで、不要な変更がマージされることを防ぐことが可能になります。

まとめ:GitとGitHubの基本概念

概念説明
リポジトリ
(リモート/ローカル)
プロジェクトのすべてのファイルと変更履歴を保管する場所。
リモートリポジトリはオンライン上で共有されるため、チーム全体での共有に使用される。
ローカルリポジトリは個々の開発者のマシン上に存在し、個々の開発作業が行われます。
ブランチとマージブランチはプロジェクトの異なるバージョンを作成するためのツール。
1つのブランチ上での変更は他のブランチに影響を与えない。
マージは、一つのブランチで行われた変更を他のブランチに統合する操作。
コミットとプッシュコミットはローカルリポジトリに対して行われる操作で、行った変更を保存すること。
プッシュはローカルリポジトリに行われたコミットをリモートリポジトリに反映させる操作。
プルリクエスト自身が行った変更を他の開癠者にレビューしてもらい、問題がなければメインのブランチに統合(マージ)するためのリクエスト。
blank

スキルアップを手軽に!
話題のサブスク型プログラミングスクールをご紹介。

SAMURAI TERAKOYAblank
月額2,980円から始める-入会金不要/途中解約自由。無料体験プランからスタート可能!​
飲み会1回分以下の料金で継続的なスキルアップを。

Freeks(フリークス)
blank
月額10,780円でJavaScript、Pythonなどのカリキュラムが
学び放題
質問し放題転職サポート制度あり。

ウズウズカレッジ/CCNAコース用
月額33,000円(税込)〜インフラエンジニアの登竜門「CCNA」取得を目指す。
コース受講→転職成功で【実質全額無料】(最大240,000円)

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
IT-Skills
ビズドットオンラインをフォローする
blank
ビズドットオンライン
タイトルとURLをコピーしました