SIGMA-SE Math & Tech Library

SIGMA-SE Math & Tech Library


数学と情報技術をテーマに、書籍や教材だけではつかみにくい考え方を具体例とともに簡潔にわかりやすく伝える解説サイトです。
技術の歴史や背景、関連知識の整理、学習のための覚書や要約記事も掲載しています。

Git - GitHub登録・SSH鍵設定・ブランチ作成までの開発準備

概要

GitHubアカウントの準備、SSH鍵の作成と登録、リモートリポジトリの作成、clone、ブランチ作成までを整理する。

Gitを使った開発では、ローカルリポジトリとリモートリポジトリの関係を理解しておくと、clone、branch、pushの意味が分かりやすくなる。この記事は、開発を始める前の初期設定に焦点を当てる。

この記事の構成

対象環境と利用上の注意

  • 本文記載時の環境
    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に置くローカルリポジトリだけでも、コミットや履歴参照などの操作はオフラインで利用できる。
    他の開発者とネットワーク経由で共有する場合は、リモートリポジトリを用意する。
    リモートリポジトリを利用する場合は、GitHubGitLabBitbucketなどの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に公開鍵を登録

    1. 右上のプロフィールアイコンからSettingsリンクをクリック。
    2. SSH and GPG keysをクリック。
    3. New SSH keyをクリック。
    4. Titleテキストボックスに任意の端末認識ができるような分かりやすいタイトルを記入する。
    5. 生成したid_ed25519.pub(公開鍵)の内容をKeyにコピー&ペーストする。秘密鍵id_ed25519は登録しない。
    6. Add keyをクリックして保存。
    7. GitHubのログインパスワードの入力を求められるので入力。
    8. 手順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のリポジトリ作成

  1. GitHubトップの右上「+」をクリックし、New RepositoryリンクからCreate a new repository画面に遷移。
  2. 画面上部にあるRepository nameに任意のリポジトリ名を入力。
  3. リポジトリの公開 / 非公開を設定するPublic / Privateラジオボタンを選択。
  4. この後の例と同じくmainブランチをすぐ利用できるよう、Add a README fileを選択。空のリポジトリにはまだブランチが存在しない点に注意。
  5. 入力内容を確認し、Create repositoryボタンをクリック。
  6. リポジトリ画面の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の意味が分かりやすい。
  • 作業はブランチを分けて進めると、変更範囲を管理しやすくなる。

参考文献

この記事を共有
Xで共有 Facebookで共有 LINEで共有



Copyright SIGMA-SE All Rights Reserved.
s-hama@sigma-se.jp