今回は、GitHubについて基本的な概念から実際の使い方までを解説します。
「GitHubという名前は聞いたことがあるけれど、実際に使ったことがない」という方に向けて、バージョン管理の必要性からアカウント作成、基本的なコマンドまで一通り網羅しました。この記事を読み終える頃には、GitHubを使い始めるための基礎知識が身についているはずです。
なぜバージョン管理が必要なのか
プログラミングやドキュメント作成を行っていると、「昨日の状態に戻したい」「誰がいつどの部分を変更したのか知りたい」といった場面に遭遇することがあります。ファイル名に日付をつけて「report_20250101.txt」「report_20250102_修正版.txt」「report_20250102_最終版.txt」のように管理した経験がある方も多いのではないでしょうか。
このような手動でのバージョン管理には、いくつかの問題点があります。
まず、ファイルが増えすぎて管理が煩雑になります。どのファイルが最新なのか、どのファイルにどのような変更を加えたのかが把握しづらくなります。次に、複数人で作業する場合、誰かの変更を上書きしてしまうリスクがあります。さらに、変更履歴を追跡することが困難なため、問題が発生した際に原因を特定するのに時間がかかります。
バージョン管理システムを導入することで、これらの問題を解決できます。変更履歴を自動的に記録し、任意の時点の状態に戻すことができ、複数人での共同作業も安全に行えるようになります。
GitとGitHubの違いを理解しよう
GitHubを学ぶ前に、「Git」と「GitHub」の違いを明確にしておくことが重要です。この2つは名前が似ていますが、それぞれ異なる役割を持っています。
Gitとは
Gitは、2005年にLinuxカーネルの開発者であるリーナス・トーバルズによって開発された「分散型バージョン管理システム」です。ローカル環境(自分のパソコン)でファイルの変更履歴を管理するためのソフトウェアであり、インターネット接続がなくても使用できます。
Gitの主な特徴として、変更履歴をコミットという単位で記録すること、ブランチ機能により複数の作業を並行して進められること、過去の任意の状態に戻せることなどが挙げられます。
GitHubとは
GitHubは、Gitリポジトリをインターネット上でホスティングするWebサービスです。2008年に設立され、現在はMicrosoft傘下のサービスとして運営されています。Gitで管理しているプロジェクトをクラウド上に保存し、他の開発者と共有・共同作業できるプラットフォームを提供しています。
GitHubの主な特徴として、リモートリポジトリのホスティング、プルリクエストによるコードレビュー機能、Issue(課題管理)機能、GitHub Actionsによる自動化機能などがあります。
両者の関係性
簡潔にまとめると、Gitは「バージョン管理を行うためのツール」であり、GitHubは「Gitを活用してチームでの開発やコード共有を便利にするWebサービス」です。Gitは単体でも使用できますが、GitHubを使うことでGitの機能をより効果的に活用できます。
GitHubの具体的なユースケース
GitHubは様々な場面で活用されています。ここでは代表的なユースケースを紹介します。
個人開発でのバージョン管理
個人でアプリケーションやWebサイトを開発する際、GitHubを使うことでコードの変更履歴を管理できます。「この機能を追加する前の状態に戻したい」「1週間前のコードと比較したい」といった要望に簡単に対応できます。また、パソコンが故障した場合でも、GitHub上にコードが保存されているためデータを失う心配がありません。
チーム開発での共同作業
複数人でプロジェクトを進める際、GitHubは欠かせないツールとなっています。各メンバーが担当する機能を別々のブランチで開発し、完成したらプルリクエストを通じてコードレビューを受け、問題がなければメインのコードに統合するという流れで作業を進められます。
ポートフォリオとしての活用
エンジニアの就職・転職活動において、GitHubアカウントはポートフォリオとして機能します。自分が書いたコードや参加したプロジェクトを公開することで、技術力をアピールできます。
オープンソースプロジェクトへの参加
世界中の開発者が公開しているオープンソースプロジェクトに参加することも可能です。バグの報告や修正、新機能の提案など、様々な形で貢献できます。
GitHubを始めるための準備
ここからは、実際にGitHubを使い始めるための手順を解説します。
Gitのインストール
まず、ローカル環境にGitをインストールする必要があります。
Windowsの場合
Git for Windowsの公式サイト(https://gitforwindows.org/)からインストーラーをダウンロードし、実行します。インストール中の設定は基本的にデフォルトのままで問題ありません。
Macの場合
ターミナルを開き、以下のコマンドを実行します。Xcode Command Line Toolsがインストールされていない場合は、インストールを促すダイアログが表示されます。
git --version
または、Homebrewを使用してインストールすることもできます。
brew install git
Linuxの場合(Ubuntu/Debian)
sudo apt update
sudo apt install git
GitHubアカウントの作成
次に、GitHubアカウントを作成します。
- GitHubの公式サイト(https://github.com/)にアクセスします
- 「Sign up」ボタンをクリックします
- メールアドレス、パスワード、ユーザー名を入力します
- 認証を完了し、アカウントを作成します
無料プランでも、公開リポジトリは無制限に作成でき、プライベートリポジトリも利用可能です。個人利用であれば無料プランで十分な機能が揃っています。
初期設定
Gitをインストールしたら、ユーザー名とメールアドレスを設定します。この情報はコミット履歴に記録されます。
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
設定内容は以下のコマンドで確認できます。
git config --list
基本的なGitコマンドと使い方
GitHubを活用するためには、基本的なGitコマンドを理解しておく必要があります。ここでは、最もよく使うコマンドを紹介します。
リポジトリの作成とクローン
新しいプロジェクトを始める場合、リポジトリを初期化します。
mkdir my-project
cd my-project
git init
既存のGitHubリポジトリをローカルにコピーする場合は、cloneコマンドを使用します。
git clone https://github.com/username/repository-name.git
変更の記録
ファイルを編集した後、変更をGitに記録するための一連の流れを見ていきましょう。
まず、現在の状態を確認します。
git status
変更したファイルをステージングエリアに追加します。
git add filename.txt # 特定のファイルを追加
git add . # すべての変更ファイルを追加
ステージングしたファイルをコミット(記録)します。
git commit -m "変更内容を説明するメッセージ"
リモートリポジトリとの連携
ローカルの変更をGitHubにアップロード(プッシュ)します。
git push origin main
GitHubの最新の変更をローカルに取り込む(プル)場合は以下のコマンドを使用します。
git pull origin main
ブランチの操作
新しいブランチを作成して切り替える場合は以下のようにします。
git branch feature-branch # ブランチを作成
git checkout feature-branch # ブランチに切り替え
または、作成と切り替えを同時に行うこともできます。
git checkout -b feature-branch
ブランチ一覧を確認するには以下のコマンドを実行します。
git branch
GitHubでの基本的なワークフロー
実際の開発でよく使われる基本的なワークフローを紹介します。
- リポジトリのクローン:GitHubからプロジェクトをローカルにコピーします
- ブランチの作成:新機能や修正用のブランチを作成します
- コードの編集:必要な変更を加えます
- 変更のコミット:編集内容を記録します
- プッシュ:ローカルの変更をGitHubにアップロードします
- プルリクエストの作成:変更内容のレビューを依頼します
- マージ:レビュー後、メインブランチに統合します
この流れを繰り返すことで、安全かつ効率的に開発を進められます。
基本用語集
最後に、GitHubを使う上で知っておくべき基本用語をまとめます。
| 用語 | 説明 |
|---|---|
| リポジトリ(Repository) | プロジェクトのファイルと変更履歴を保存する場所。ローカルリポジトリとリモートリポジトリがある |
| コミット(Commit) | ファイルの変更を記録する操作。変更内容のスナップショットを作成する |
| プッシュ(Push) | ローカルリポジトリの変更をリモートリポジトリにアップロードする操作 |
| プル(Pull) | リモートリポジトリの変更をローカルリポジトリに取り込む操作 |
| クローン(Clone) | リモートリポジトリをローカル環境にコピーする操作 |
| ブランチ(Branch) | 開発の流れを分岐させる機能。メインのコードに影響を与えずに作業できる |
| マージ(Merge) | 別々のブランチの変更を統合する操作 |
| プルリクエスト(Pull Request) | 変更内容をレビューしてもらい、マージを依頼する機能。GitHub特有の機能 |
| フォーク(Fork) | 他のユーザーのリポジトリを自分のアカウントにコピーする操作 |
| ステージング(Staging) | コミットする前に、変更ファイルを一時的に登録する領域に追加する操作 |
| HEAD | 現在作業しているブランチの最新コミットを指すポインタ |
| origin | リモートリポジトリのデフォルトの名前。クローン時に自動設定される |
まとめ
この記事では、GitHubの基本的な概念から実際の使い方まで解説しました。GitとGitHubの違い、バージョン管理の必要性、基本的なコマンドについて理解できたのではないでしょうか。
GitHubは最初は難しく感じるかもしれませんが、基本的な操作を繰り返し行うことで徐々に慣れていきます。まずは個人プロジェクトで練習し、少しずつ機能を覚えていくことをおすすめします。
バージョン管理のスキルは、エンジニアとして働く上で必須の技術です。ぜひこの記事を参考に、GitHubを使った開発を始めてみてください。

コメント