概要
GitHubアカウントの準備、SSH鍵の作成と登録、リモートリポジトリの作成、clone、ブランチ作成までを整理する。
Gitを使った開発では、ローカルリポジトリとリモートリポジトリの関係を理解しておくと、clone、branch、pushの意味が分かりやすくなる。この記事は、開発を始める前の初期設定に焦点を当てる。
この記事の構成
- 対象環境と利用上の注意
本文記載時の環境と現在そのまま利用できない箇所を確認。 - 作業時の注意点
設定変更やコマンド実行前に確認しておきたい注意点を整理。 - Git、GitHubのリポジトリ構成イメージ
ローカルリポジトリとリモートリポジトリの関係を図から確認。 - Gitブランチと運用
ブランチを分けて変更履歴を管理する考え方を整理。 - GitHubのアカウント準備
GitHubのアカウント準備の手順と確認ポイントを整理。 - SSHの公開鍵、秘密鍵の生成
SSH鍵ペアを作成し、公開鍵と秘密鍵を安全に扱う方法を確認。 - GitHubのリポジトリ作成
GitHubのリポジトリ作成の手順と確認ポイントを整理。 - [git clone] : リモートリポジトリの複製
git cloneコマンドの役割と基本操作を具体例から確認。 - ブランチの確認・作成・切り替え
ブランチの確認・作成・切り替えについて、確認する項目と結果の見方を整理。
対象環境と利用上の注意
- 本文記載時の環境
Gitコマンドを実行できる端末と、GitHubのWeb画面・SSH接続を利用する環境。
git switchはGit 2.23以降を前提とする。 - 確認時期
2026年8月にGit・GitHubの公式資料と照合。
GitHubの現行画面で全手順は再実行していない。 - 現在そのまま利用できない箇所
GitHubの画面名、認証方針、既定ブランチは変更される場合がある。
表示が異なる場合はGitHub公式の現行手順を確認し、古いGitではgit switchの代わりにgit checkoutを利用する。
作業時の注意点
- 公開鍵と秘密鍵
GitHubに登録するのは公開鍵であり、秘密鍵は外へ出さない。 - masterとmain
GitHubで新しく作るリポジトリは通常mainが既定となる。既存リポジトリでは異なる場合があるため確認。 - clone後の作業場所
cloneで作成されたディレクトリ内でgitコマンドを実行。 - ブランチ作成と切り替え
現在はgit switch -cで作成と切り替えを同時に行える。古いGitではgit checkout -bを使う。
事前説明
Git、GitHubのリポジトリ構成イメージ
-
Gitリポジトリ
Gitリポジトリは、Gitがコミットやブランチなどの履歴を管理するデータベースである。開発者のPCに置くローカルリポジトリだけでも、コミットや履歴参照などの操作はオフラインで利用できる。
他の開発者とネットワーク経由で共有する場合は、リモートリポジトリを用意する。
リモートリポジトリを利用する場合は、GitHubやGitLab、BitbucketなどのGitリポジトリをホスティングするWebサービスを利用。 -
GitHubリポジトリ
GitHubは、Gitの機能を拡張し、共有やコラボレーションを行うためのWebサービスでチームやオープンソースプロジェクトで開発する場合に使用。
GitHubリポジトリは、GitリポジトリをGitHubプラットフォーム上でホストしたもので単にリモートリポジトリと呼ばれることが多い。
オンラインでホストされ、他の開発者とリポジトリを共有でき、pullリクエストやIssue管理、アクションの自動化など、GitHub独自の機能が利用可能。
GitHubリポジトリをリモートリポジトリとして利用し、ローカルと同期しながらソース管理。
一般的に開発者の端末で管理するリポジトリをローカルリポジトリ、GitHubやGitLab、Bitbucketなどのホスティングサービス上で管理するリポジトリをリモートリポジトリという。GitはVCS(Version Control System)であり、GitHubはGitリポジトリのホスティングサービスという違いがある。
Gitブランチと運用
-
Gitブランチ
Gitブランチとは、コミットを指す移動可能な名前である。ブランチを分けると、機能追加や不具合修正の履歴をmainの履歴から分離して進められる。
作業が完了したら、必要に応じてブランチ同士をマージする。
最初のコミットが作成されると、mainまたはmasterなどの既定ブランチが履歴の起点となる。コミットが一つもない空のリポジトリでは、ブランチはまだ実体化していない。
※ 現在は、デフォルトブランチ名としてmainが使われることが多い。 -
統合ブランチとトピックブランチ
チームの運用ルールとして、mainブランチをリリース可能な状態に保つ統合ブランチとして扱うことが多い。これはGit自体が強制する規則ではない。
また、統合ブランチを起点とし、不具合修正や仕様変更などの課題単位に作成するブランチをトピックブランチという。
変更後は、課題単位に作成されたトピックブランチを統合ブランチにマージする。
統合ブランチにマージ後、不要となったトピックブランチは削除。
トピックブランチ名は、改修内容が分かりやすいようにプロジェクト内の課題管理方法に準じた名前にするのが一般的。
※ 課題管理番号を含めた短い名前にすることが多い。
実施内容
GitHubのアカウント準備
-
GitHubのアカウント登録 GitHubからアカウント登録(Sign up)する。
-
メール認証
登録したメールアドレス宛にメール「[GitHub] Please verify your email」が届くので、本文内のURLにアクセスしメール認証を完了させる。 - GitHub Freeでも非公開リポジトリを作成できるため、開発準備のためだけに有料プランへ変更する必要はない。
組織機能や高度な機能が必要になった時点でプランを比較。
SSHの公開鍵、秘密鍵の生成
通信手段は、SSHを利用する。
-
Ed25519形式の秘密鍵と公開鍵を生成
既存の鍵を誤って上書きしないよう~/.sshの内容を確認してから、ssh-keygenを実行。
GitHubはEd25519を推奨しており、Ed25519を利用できない古い環境では4096ビットのRSA鍵を選択。$ install -d -m 700 ~/.ssh $ ls -la ~/.ssh $ ssh-keygen -t ed25519 -C "GitHubに登録したメールアドレス" Enter file in which to save the key (/home/user/.ssh/id_ed25519): # Enter押下 Enter passphrase (empty for no passphrase): # 十分に強いパスフレーズを入力 Enter same passphrase again: -
秘密鍵、公開鍵の生成確認
$ ls ~/.ssh id_ed25519 id_ed25519.pub -
秘密鍵をssh-agentへ登録
ssh-addで秘密鍵をssh-agentへ登録すると、エージェントが起動している間はパスフレーズを毎回入力せずに済む。
パスフレーズそのものを削除する操作ではない。
ssh-addは、OSによって実行方法が若干違うので注意。$ eval "$(ssh-agent -s)" $ ssh-add ~/.ssh/id_ed25519 $ ssh-add -l # 登録確認 -
GitHubに公開鍵を登録
- 右上のプロフィールアイコンからSettingsリンクをクリック。
- SSH and GPG keysをクリック。
- New SSH keyをクリック。
- Titleテキストボックスに任意の端末認識ができるような分かりやすいタイトルを記入する。
- 生成した
id_ed25519.pub(公開鍵)の内容をKeyにコピー&ペーストする。秘密鍵id_ed25519は登録しない。 - Add keyをクリックして保存。
- GitHubのログインパスワードの入力を求められるので入力。
- 手順3で表示した画面に切り替わり、SSH keysセクションに手順4で設定したTitleが表示されていれば成功。
-
接続確認
初回接続時は、表示されたホスト鍵フィンガープリントをGitHub公式ドキュメントの値と照合してから続行する。
認証成功時は、GitHubがシェルアクセスを提供しない旨のメッセージが表示され、コマンドの終了コードは1となるが問題はない。$ ssh -T git@github.com Hi USERNAME! You've successfully authenticated, but GitHub does not provide shell access.
GitHubのリポジトリ作成
- GitHubトップの右上「+」をクリックし、New RepositoryリンクからCreate a new repository画面に遷移。
- 画面上部にあるRepository nameに任意のリポジトリ名を入力。
- リポジトリの公開 / 非公開を設定するPublic / Privateラジオボタンを選択。
- この後の例と同じく
mainブランチをすぐ利用できるよう、Add a README fileを選択。空のリポジトリにはまだブランチが存在しない点に注意。 - 入力内容を確認し、Create repositoryボタンをクリック。
- リポジトリ画面のCodeからSSHを選択。
[git clone] : リモートリポジトリの複製
上記で作成したリモートリポジトリをclone(複製)する。
-
Gitの作業フォルダ作成
$ mkdir ~/gitlocalrep $ cd ~/gitlocalrep -
リモートリポジトリをclone
$ git clone git@github.com:YOUR_USERNAME/exrep.git Cloning into 'exrep'... $ ls # 確認 exrep※
YOUR_USERNAMEは実際のユーザー名へ置き換える。ここではリポジトリ名をexrepとしているが、作成した名前が異なる場合はexrepも置き換え、リモートリポジトリのCode画面に表示されるSSH URLを使用。
山括弧(< >)をコマンドへそのまま入力すると、シェルではリダイレクトとして解釈される。
上記の通りcloneによってGitリポジトリがcloneされexrepディレクトリが作成される。
ブランチの確認・作成・切り替え
-
現在のブランチ確認
アスタリスク(*)があるブランチが現在の作業ブランチとなる。
ここではGitHubの標準設定とREADME付きで作成したため、mainが存在する。GitHub側で既定ブランチ名を変更している場合は、その名前に読み替える。$ cd ~/gitlocalrep/exrep # cloneしたディレクトリに移動 $ git branch # ブランチの確認 * main -
topicbranchブランチの作成と切り替え
git switch -cを使うと、新しいブランチの作成と切り替えを同時に実行できる。$ git switch -c topicbranch Switched to a new branch 'topicbranch' $ git branch # ブランチの確認 main * topicbranch -
(補足)古いGitでの操作
git switchを利用できない古いGitでは、git checkout -bで同じ操作を行う。$ git checkout -b topicbranch Switched to branch 'topicbranch' $ git branch main * topicbranch
以上で開発準備完了。
以降は、必要に応じてリモートの変更をpullし、ローカルでadd、commitした変更をpushする流れとなる。
参考 : Git - 状態管理の概念と基本操作 : status, add, commit, diff, reset, push, pull,
checkout
まとめ
- GitHubを使う開発準備では、アカウント、SSH鍵、リポジトリ作成、cloneを順番に行う。
- ローカルリポジトリとリモートリポジトリの関係を理解すると、pushやpullの意味が分かりやすい。
- 作業はブランチを分けて進めると、変更範囲を管理しやすくなる。