
GitHubは、世界中の開発者が利用しているプロジェクトのコードを管理・共有するためのプラットフォームです。
非常に便利なサービスですが、初心者にとっては使い方が分からず、活用しづらいかもしれません。
そこでこの記事では、GitHubの入門として、初回設定の方法や基本的な使い方を解説します。
また、コストが気になる方向けに、無料プランではどこまで利用できるのかについてもご紹介します。
GitHubの使い方:初心者が知っておくべきGitHubの概要

GitHubは、Gitというバージョン管理システムを利用して、ソフトウェア開発プロジェクトのコードを管理・共有するためのプラットフォームです。
プログラマーは自分の書いたコードを保存し、変更履歴を追跡できます。
また、世界中の開発者と共同でプロジェクトを進めることも可能です。
GitHubは、個人プロジェクトの管理から大規模なオープンソース開発まで、幅広い用途で利用されており、現代のソフトウェア開発において不可欠なツールとなっています。
自分のプロジェクトを公開したり、他の人のコードに貢献したりすることで、開発スキルを向上させることもできます。
GitとGitHubの違い
Gitは分散型バージョン管理システムであり、ファイルの変更履歴を記録・管理するためのツールです。
これは、コンピュータ上にインストールして使用するソフトウェアで、インターネット接続がなくてもバージョン管理を行えます。
GitHubはGitの機能を活用したWebベースのホスティングサービスです。
Gitで管理しているコードをオンライン上で保存・共有し、チームでの共同作業を容易にします。
GitHubが選ばれる理由
GitHubが多くの開発者に選ばれる理由は、バージョン管理と共同作業が非常に効率的に行える点です。
コードの変更履歴が明確に残り、複数の開発者が同時に作業しても衝突を避けやすい仕組みが整っています。
また、プルリクエストやIssuesを通じてコードレビューや議論を活発に行えるため、プロジェクトの質向上につなげることも可能です。
さらに、オープンソースプロジェクトのハブとなっており、世界中の優れたコードに触れ、自分のスキルを磨く機会が豊富にあります。
高い信頼性と安定性があることも、特にビジネス利用において選ばれるポイントとなっているでしょう。
GitHubの基本用語集
GitHubを使い始めると、数々の専門用語に出会うことになります。
そのような用語を見たときに混乱しないよう、基本的な用語はここでおさえておきましょう。
リポジトリ|Repositories
リポジトリは、プロジェクトに関連するすべてのファイルやディレクトリ、そしてそれらの変更履歴を保存する場所です。
一般的に、1つのプロジェクトに対して1つのリポジトリが作成されます。
リポジトリには、ソースコード、画像、ドキュメントなど、プロジェクトを構成するあらゆる要素が含まれます。
また、複数の開発者が共同開発する際にはファイルの一元管理の場として役立ちます。
フォルダやディレクトリと似ていますが、ファイルの変更履歴を保存し、過去の状態への復元が可能なバージョン管理機能が備わっています。
リポジトリにはローカルリポジトリとリモートリポジトリがあるため、違いを確認しておきましょう。
ローカルリポジトリ
ローカルリポジトリは、開発者自身のコンピュータ上に存在するリポジトリです。
オフラインの状態でも作業が可能で、変更内容をコミットして履歴を記録することができます。
GitHubを使う際は、このローカルリポジトリの作業内容をGitHub上にプッシュすることで、リモートリポジトリを更新していきます。
他の人の影響を受けず、ローカルで作業内容を保存できる個人の開発作業の中心となる場所がローカルリポジトリです。
リモートリポジトリ
リモートリポジトリは、GitHub上に存在するリポジトリであり、複数人での開発において中心的な役割を果たします。

専用のサーバー上に存在するため、インターネット経由でアクセスする必要があります。
ローカルリポジトリで行った変更をプッシュすることで、他の開発者と内容を共有することが可能です。
チームでコードを共有し、プロジェクト全体の進捗を管理するための場所がリモートリポジトリです。
コミット
コミットは、ファイルやディレクトリへの変更をローカルリポジトリに記録する操作です。

「セーブポイント」のようなもので、誰が、いつ、どのような変更を行ったかという情報がメッセージと共に保存されます。
プロジェクトの変更履歴は、このコミットの積み重ねによって構成されます。
インデックス
インデックスは、「ステージングエリア」とも呼ばれ、次のコミットに含める変更内容を一時的に置いておく場所です。
コミットする際は、先に作業ディレクトリで行った変更の中から、コミットしたいものだけを選択してインデックスに追加します。

これにより、不要な変更を含めずに、意味のある単位でコミットを作成できます。
プッシュ
プッシュは、ローカルリポジトリで行ったコミットの履歴を、リモートリポジトリにアップロードして反映させる操作です。
ファイルを更新した後、プッシュを行うことで、ローカルリポジトリにコミットした変更内容をリモートリポジトリに送信できます。

これにより、自分が行った変更内容をチームメンバーと共有できます。
ブランチ
ブランチは、プロジェクトのバージョン履歴を分岐させて、元の履歴に影響を与えることなく新しい作業を行うための機能です。
例えば、「機能追加用ブランチ」「バグ修正用ブランチ」のように目的別に作成し、並行して作業を進めることができます。

もし複数人で作業していて、同じコードを同時に変更した場合、変更内容が混ざってしまい、元のコードにも影響が出ます。
分岐したブランチでの変更内容は他のブランチに影響を与えないため、特に共同開発で作業を同時進行する際に有効です。
なお、ブランチの切り替えを忘れるとプッシュ時にエラーが発生するため、作業中のブランチを必ず確認するようにしましょう。
マージ
マージは、分岐したブランチで行った変更を、別のブランチに統合する操作です。
これにより、ブランチで完成させた新機能や修正内容を、プロジェクトに反映させることができます。
クローン
クローンは、リモートリポジトリを自身のコンピュータに複製し、ローカルリポジトリを作成する操作です。
プロジェクトに参加する際に、最初に行う作業の一つです。
また、オープンソースのプロジェクトをローカル環境で動かす際にも、プロジェクトをクローンすることで利用可能です。
フェッチ
フェッチは、リモートリポジトリの最新のコミット履歴を取得し、ローカルリポジトリにダウンロードする操作です。
ただし、フェッチしただけではローカルのファイル内容は更新されません。
リモートの変更内容を確認した上で、自分の作業ブランチにマージする必要があります。
クローンはリポジトリ全体をローカル環境にコピーするのに対し、フェッチはローカルリポジトリとリモートリポジトリの差分のみを取得する操作となっています。
プルリクエスト
プルリクエストは、ブランチで自分が行った変更を他の開発者に通知し、レビューとマージを依頼する機能です。
変更内容の差分が見やすく表示され、チームメンバー同士でコードレビューをすることが可能です
変更内容について議論したり、フィードバックを受けたりすることができ、チーム開発における品質を担保するための重要な仕組みとなっています。
Bash
Bashとは、命令を入力することでコンピューターがその命令に従ってファイルの操作や編集、削除ができるソフトウェアです。
LinuxやUnixなどのOSに搭載されており、Unixコマンドと呼ばれるコマンドを入力することで命令が可能です。
GitはもともとLinux環境をで開発されたため、Linuxで標準的に使用されるBashでの操作と相性が良いです。
ただし、macOSやLinuxではBashの機能がターミナルに標準で搭載されているのに対し、Windowsには搭載されていません。
そのため、WindowsでBashを使いたい場合、Git Bashというアプリケーションを利用することになります。
Windowsユーザーの方は、Git Bashを利用することで、この記事と同じコマンドで操作することが可能です。
なお、Git BashはGit for Windowsをインストールすると自動で一緒にインストールされます。
デプロイ
デプロイとは、開発したアプリケーションやウェブサイトなどを、ユーザーが実際に利用できる環境に配置し、稼働させることを指す言葉です。
デプロイによって、コードが実際のユーザーに提供されるサービスとして機能するようになります。
デプロイは開発プロセスの最終段階であり、GitHubと連携させることで手作業によるミスを防ぎ、迅速かつ安全にサービスをユーザーに届けることができます。
HTTPSとSSH
GitHubでは、ローカルリポジトリとリモートリポジトリとの間で安全に通信を行うための接続方法として、HTTP接続とSSH接続が選べます。
クローンやプッシュを行う際に、どちらの方法で接続するかを選べます。
HTTP接続では、特別な設定は不要ですぐに利用することができます。
ただし、接続のたびにアカウント名とパスワード(またはトークン)による認証が必要となります。
一方SSH接続は、HTTPS接続と違いパスワードの入力が不要であり、GitHubに接続する際の手間を減らせます。
また、セキュリティもHTTP接続と比べて高いとされています。
ただし、初回利用の際に設定する必要があり、少し手間がかかります。
GitHubの使い方:無料のFreeプランでできること

GitHubには、無料で利用できるFreeプランがあります。
ここでは、Freeプランでできることや有料プランとの違いをご紹介します。
プライベートリポジトリの上限と機能制限
GitHubのFreeプランにおけるプライベートリポジトリは、かつて共同作業者の数に関する制限がありましたが、現在では無制限に利用できます。
これにより、個人の秘密プロジェクトや、少人数のチームでのクローズドな開発も自由に行えるようになりました。
また、共同編集者についても無制限となっています。
ただし、GitHub Actionsの利用時間やGitHub Packagesのストレージ容量は有料プランと比べて制限が厳しくなっています。
これらの上限を超えて利用する場合は追加料金が発生するか、有料プランへのアップグレードが必要になります。
なお、どちらもパブリックリポジトリ(公開されるリポジトリ)での利用は無料です。
有料プランとの比較
GitHubの有料プランは、Freeプランの機能に加え、より高度な管理機能や大規模な組織向けのサポートを提供します。
以下に、2025年6月30日時点でのGitHubの料金プランと主な特徴を示します。
項目 | Freeプラン | Teamプラン | Enterpriseプラン |
---|---|---|---|
料金 | 0ドル/月 | 4ドル/ユーザー/月 | 21ドル/ユーザー/月 |
パブリックリポジトリ | 無制限 | 無制限 | 無制限 |
プライベートリポジトリ | 無制限 | 無制限 | 無制限 |
GitHub Codespaces | 120コア時間/月 15GBストレージ/ 月 | ||
GitHub Actions | 2,000分/月 | 3,000分/月 | 50,000分/月 |
GitHub Packages | 500MB | 2GB | 50GB |
コードレビュー | |||
プルリクエスト | |||
Issues | |||
Projects |
Freeプランであっても、パブリックリポジトリやプライベートリポジトリは無制限に利用でき、GitHubの基本機能も利用可能です。
個人利用であれば、Freeプランでも十分でしょう。
TeamやEnterpriseといった有料プランではGitHub Codespacesが利用できるほか、GitHub ActionsやGitHub Packagesの利用上限が上がります。
Teamプランは個人や小規模なプロジェクト用のプランであり、Enterpriseプランは組織向けに高いセキュリティやコンプライアンスを備えたプランとなっています。
無料枠を活用したチーム開発とAIプロジェクト運用のコツ
GitHubはFreeプランでもリポジトリを無制限に使用でき、プルリクエストやコードレビューを用いてチーム開発を進めることができます。
月に2,000分まで無料で利用できるGitHub Actionsを活用すれば、テストやデプロイの自動化も可能です。
また、GitHubには100MiBよりも大きいファイルは禁止されています。
GitHubにより、100 MiB よりも大きいファイルは禁止されます。
この制限を超えるファイルを追跡するには、Git Large File Storage (Git LFS) を使う必要があります。
出典:GitHub での大きいファイルについて
そのため、AIプロジェクトでモデルやデータセットといった大容量ファイルを扱う際は、Git LFSやファイル共有サービスを利用するようにしましょう。
GitHubの使い方【入門】:アカウント作成と初回設定手順

次にGitHubの導入方法を解説します。
この記事では、Windows環境での導入方法をご説明します。
Gitのインストール
GitHubを使うには、Gitをインストールする必要があります。
以下に手順を示します。
ダウンロードしたインストーラを起動し、「Install」をクリックしてGitをインストールします。

インストールが完了したら、「Finish」をクリックして終了しましょう。
コマンドプロンプトを開き、以下のコマンドを実行してGitのバージョンが表示されればインストール完了です。
git --version

Gitをインストールすると、Git Bashというコマンドラインツールもインストールされます。
Git Bashを起動して初期設定を進めます。
以下のコマンドを実行することで、ユーザー名を設定します。
git config --global user.name "ユーザー名"
また、以下のコマンドを実行すると、メールアドレスを設定できます。
git config --global user.email "メールアドレス"
ユーザー名とメールアドレスを設定後、Git Bashを再起動して以下のコマンドを実行します。
git config --list
以下のようにユーザー名とメールアドレスが表示されれば、初期設定完了です。

GitHubのアカウント登録とSSH接続設定
続いてGitHubの登録手順を解説します。
GitHubの公式サイトにアクセスし、「GitHubに登録する」をクリックします。

メールアドレスやパスワードを入力し、「Continue」をクリックします。

登録したメールアドレスに認証コードが送られてくるので、入力して続けます。

サインイン画面に遷移するので、先ほど登録したメールアドレスかユーザー名と、パスワードを入力してください。

以上でアカウント登録は完了です。
GitHubでは、接続方法としてHTTPSとSSHが選べます。
SSH接続をするには、まずGit Bashで以下のコマンドを実行し、公開鍵・秘密鍵を発行します。
ssh-keygen -t rsa
ファイルの保存場所やパスワードを入力するように求められますが、何も入力せずにEnterを押しても大丈夫です。

以上で公開鍵・秘密鍵の作成が完了しました。
続いて作成した公開鍵をGitHubにアップロードします。
以下のコマンドを実行し、作成した公開鍵の内容を表示します。
cat /c/Users/ユーザー名/.ssh/id_rsa.pub
なお、cat
コマンドの後は鍵を作成したファイルを指定します。
次にGitHubのアイコンをクリックし、「Settings」をクリックします。

画面左のメニューバーの中から「SSH and GPG keys」を選択します。

SSH keysの中の「New SSH keys」をクリックします。

「Title」には任意の名前を付け「Key type」は「Authentication Key」を選択します。
そして「Key」に、先ほど作成した公開鍵の文字列を貼り付けてください。

以上でGitHubへの公開鍵のアップロードは完了です。
公開鍵がアップロードできれば、以下のコマンドを実行します。
ssh -T git@github.com
以下のように表示されれば接続完了です。

初回コミットからプッシュまでの流れ
続いてGitHubにコミットするまでの流れをご説明します。
GitHubで「Create Repository」をクリックしてリモートリポジトリを作成します。

リポジトリの作成画面に移るので、それぞれの項目を入力して「Create repository」をクリックします。

項目 | 内容 |
---|---|
Repository name | リポジトリの名前 |
Public | リポジトリを公開にする |
Private | リポジトリを非公開にする |
Add a README file | READMEファイルを設置 |
リモートリポジトリの作成が完了すると、以下のような画面に移ります。

次にローカルリポジトリを作成します。
以下のコマンドを実行して、ローカルリポジトリ用のディレクトリを作成します。
なお、ディレクトリ名は任意のもので大丈夫です。
mkdir test
以下のコマンドで作成したディレクトリに移動します。
cd test
移動後、以下のコマンドを実行して作成したディレクトリをローカルリポジトリにします。
git init
以下のように表示されれば、ローカルリポジトリの作成は完了です。

ローカルリポジトリ下でファイルの作成や変更を行った後は、コミットをする必要があります。
今回はtest.txt
というファイルを作成し、このファイルをコミットしていきます。
まずは以下のコマンドでリポジトリの変更内容をインデックスへ追加します。
git add test.txt
次に、以下のコマンドを実行することで、変更内容をコミットします。
コメント内容は自由に変更可能です。
git commit -m "コメント"

以下のコマンドを入力すると、コメントを含めた変更履歴を見ることができます。
git log

このように履歴が表示されていればローカルリポジトリへのコミットは完了です。
続いてローカルリポジトリをリモートリポジトリへプッシュします。
まずは以下のコマンドを実行してローカルリポジトリとリモートリポジトリを紐づけましょう。
git remote add origin <リモートリポジトリのURL>
なお、リモートリポジトリのURLは「code」から参照してください。

紐づけが完了した後は、以下のコマンドでプッシュします。
git push origin main
プッシュが完了すると、GitHub上で変更が反映されていることが分かります。

GitHubの使い方【応用】:基本操作を覚えたら試したい便利機能

続いて、GitHubの応用的な使い方を解説します。
ブランチとプルリクエストの流れ
GitHubでは、バージョン管理に便利なブランチやプルリクエストといった機能があります。
ここでは、ブランチの作成やプルリクエストの流れをご説明します。
ブランチを作成することで、他のブランチに影響を与えずリポジトリを変更することができます。
特に複数人で同時に作業を行う際に有効です。
ブランチは以下のコマンドで作成できます。
git branch <ブランチ名>
また、以下のコマンドを実行するとブランチの一覧を表示できます。
git branch

以下のコマンドを実行することで作業するブランチを切り替えられます。
git checkout <ブランチ名>

切り替えたブランチでファイルの編集を行い、ブランチ名でリモートリポジトリにプッシュします。

リモートリポジトリを確認すると、「Compare & pull request」というボタンが追加されているので、クリックしましょう。

プルリクエストの画面が開くので、コメントを入力して「Create pull request」をクリックします。

こうすることで、プルリクエストが送信できます。

プルリクエストが送信されると、コードレビューやマージが行えるようになります。
コードレビューは「Files changed」タブから行えます。

コメントしたい行を選択してコメントを書き、「Start a review」をクリックすることで変更箇所に対してコメントができます。

また、「Review changes」をクリックして「Submit review」を押すことでコードレビューを終了できます。

リポジトリの変更内容を適用(マージ)するには、プルリクエストの画面から、「Merge pull request」をクリックします。

コメントを書いて「Confirm merge」をクリックすると、マージが完了します。


IssuesとProjectsでタスク管理
GitHubには、IssuesとProjectsというタスク管理用のツールが備わっています。
Issuesは、バグ報告、機能追加の要望、改善提案など、プロジェクトに関するあらゆるタスクを管理できます。
一方でProjectsは、Issuesやプルリクエストをカードとして配置し、プロジェクト全体の進捗状況を視覚的に管理するためのカンバンボード機能です。
IssuesとProjectsを連携することでチームのタスクを可視化し、進捗状況を一元管理できます。
IssuesとProjectsを使ってタスク管理する手順は以下の通りです。
まずはリポジトリの「Issues」タブを選択し、「New Issue」をクリックしましょう。

タイトルや説明を記入します。
説明はMarkdown形式で記入することが可能です。
「Create」をクリックすることでIssueを作成できます。


続いてProjectsを作成します。
リポジトリの「Projects」タブを選択し、「New project」をクリックします。

テンプレートが表示されるので、目的に合ったものを選択します。

選択後、プロジェクト名を設定し、「Create project」をクリックするとProjectsが作成できます。


ProjectsにはIssueやプルリクエストを追加することができます。
追加するには、Projects画面下の「+ Add item」をクリックします。

ここにIssueやプルリクエストのURLを貼り付けます。

Enter
キーを押すと、IssueやプルリクエストがProjectsに追加されます。

GitHub Actionsによる自動化入門
GitHub Actionsは、リポジトリに組み込まれた強力な自動化ツールです。
コードのビルド、テスト、デプロイといった一連の作業を自動化することで、開発プロセスを効率化し、品質を向上させることができます。
GitHub Actionsの使い方は以下の通りです。
GitHub Actionsの自動化処理は、ワークフローと呼ばれます。
ワークフローは、.github/workflows/
ディレクトリにYAML形式のファイルを作成することで定義できます。
ファイルを作成するには、GitHubの「Add file」から「Create new file」をクリックします。

ファイル名でYAMLファイルを指定します。
なお、.github/workflows
ディレクトリがない場合は、.github/workflows/sample.yml
と入力することでディレクトリごと作成できます。
ここでは、AIモデルのファインチューニングを行うプロジェクトにおいて、CIパイプラインとしてプルリクエストが作成・変更されたときにスモークテストを実施するワークフローを作成しました。

name: Pull Request CI
on:
pull_request:
branches: [ main ]
jobs:
lint-and-unit-test:
name: Lint and Unit Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Lint with ruff
run: ruff check .
- name: Run unit tests
run: pytest tests/
smoke-test-finetuning:
name: Smoke Test Fine-tuning
needs: lint-and-unit-test # 先のジョブが成功したら実行
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run fine-tuning script with small data
run: |
# finetune.pyスクリプトを、学習エポック数1、
# バッチサイズを小さく設定し、
# テスト用の少量データセット(--smoke-testフラグで指定)で実行
python src/finetune.py \
--model_name_or_path "tohoku-nlp/bert-base-japanese-v3" \
--output_dir "./test-output" \
--num_train_epochs 1 \
--per_device_train_batch_size 2 \
--smoke_test
また、CDパイプラインとして、プルリクエストがmain
ブランチにマージされた際に本番用の完全なデータセットを使ってモデルのファインチューニングと評価を実行するワークフローも作成しました。
name: Main Branch CD
on:
push:
branches: [ main ]
jobs:
full-finetune-and-evaluate:
name: Full Fine-tuning, Evaluation, and Save Model
runs-on: ubuntu-latest # 本格的な学習にはGPUランナー (e.g., [self-hosted, gpu]) を推奨
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install dependencies
run: pip install -r requirements.txt
# データセットの準備 (例: DVCやS3からダウンロード)
# - name: Download full dataset
# run: dvc pull
- name: Run full fine-tuning and evaluation
id: training
run: |
# 本番データでファインチューニングを実行
# 評価結果は metrics.json に保存される想定
python src/finetune.py \
--model_name_or_path "tohoku-nlp/bert-base-japanese-v3" \
--output_dir "./production-model" \
--do_train \
--do_eval
# Git LFSで管理するため、.gitattributesで track しておくことを推奨
- name: Save fine-tuned model as artifact
uses: actions/upload-artifact@v4
with:
name: finetuned-bert-japanese-v3
path: |
./production-model/
./metrics.json
ワークフローの結果を確認するには、GitHubでリポジトリのメインページに移動し、「Actions」タブを選択します。

左のサイドバーでは、表示したいワークフローを選択できます。
また、ログでは各ステップがどのように処理されたかが表示されます。

実行がうまくいかなかった場合は、どこでどのようなエラーが出たのか表示されるため、デバックもしやすくなっています。
まとめ
GitHubを活用することで、個人開発やチーム開発でのバージョン管理が容易になります。
特に複数人での開発では、ブランチやプルリクエストを利用することで安全かつ効率的な共同作業が可能となります。
また、IssuesやProjectsを活用したタスク管理や、GitHub Actionsを用いたCI/CD自動化など、プロジェクトを効率的に進めるための機能がそろっています。
基本機能は無料で利用可能なので、ぜひプロジェクト管理にGitHubを取り入れてみてください。