9cubed
ブログ | Tailwind | Vite | Python | MariaDB | Node.js | Linux | PowerShell | Docker | Git | その他 | 将棋ウォーズ | 歌の練習
< 前の記事

Git の基本

次の記事 >

ブランチの運用方法について

Git

[Git]Git と GitHub との連携

公開日:2026-01-02
更新日:2026-01-02

1. 概要

Git と GitHub を連携します。

2. 鍵の作成

Mintty で次のコマンドを実行して GitHub に接続するための鍵を作成します。
コマンド
ssh-keygen -t ed25519              パスはコマンド実行後に聞かれる
ssh-keygen -t ed25519 -f {パス}    パスを指定して鍵を作成。
                                   (例) ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519

Windows の場合、C:/Users/{ユーザ名}/.ssh に作成することが多いです。
コマンドを実行すると、途中でパスフレーズを聞かれます。
パスフレーズは12文字以上のランダムな英数字を設定しておくと、鍵が盗まれた場合でも、即座に悪用されることを防げます。

3. ssh-agent の設定

3.1 概要

鍵にパスフレーズを設定している場合、鍵を使用する際に、パスフレーズを入力する必要があります。
ssh-agent を使用すると、パスフレーズを自動入力することができます。

次のコマンドを実行して、「Could not open a connection to your authentication agent.」と表示される場合は、ssh-agent の設定をする必要があります。
コマンド
ssh-add -l

3.2 ssh-agent の起動

コマンド
eval "$(ssh-agent -s)"

3.3 ssh-agent に鍵の登録

コマンド
ssh-add {秘密鍵のパス}    (例) ssh-add ~/.ssh/id_ed25519
実行すると鍵のパスフレーズを聞かれるので入力してください。

3.4 ssh-agent を自動起動にする

Mintty で bash を起動すると、~/.bash_profile により、.bashrc が存在する場合は、.bashrc が実行されます。
~/.bashrc を作成して、ssh-agent の起動と鍵の登録を自動化します。

~/.bashrc をメモ帳などで作成する。
コード
echo '.bashrc'

# ssh-agent の起動
eval "$(ssh-agent -s)"

# 鍵の登録
ssh-add ~/.ssh/id_ed25519

Mitty を起動すると、最初に鍵のパスフレーズを聞かれますが、それ以降は Mitty を終了するまで、パスフレーズが自動入力されます。

4. GitHub に公開鍵の登録

GitHubにアクセスする。
GitHub の右上の自分のアイコンをクリック ->「Settings」-> 左のメニューの「SSH and GPG keys」-> 「New SSH key」

Title は何でも良い、Key type は「Authntication Key」、
Key に、作成した公開鍵(id_ed25519.pub など)の内容をコピーして、張り付ける。(メモ帳で開くと先頭が ssh-ed25519 で始まっている)
「Add SSH key」をクリックすると、公開鍵が登録される。

5. GitHub でリポジトリを作成して、ローカルのリポジトリと関連付ける

GitHub の Dashboard の左上の「New」、または右上の「+」->「New repository」をクリック。
Repository name を「test1」(リポジトリ名)、
Choose visibility を「Private」(非公開)にして、
「Create repository」をクリックするとリポジトリが作成されます。

作成後、次のように表示されるので、「SSH」をクリックしてください。


コマンドが 2 つ表示されるので、どちらかを実行すると、GitHub のリポジトリと連携できるようになります。

ローカルにリポジトリがない場合
コマンド
echo "# test1" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:{GitHub のユーザ名}/test1.git
git push -u origin main

ローカルに既にリポジトリがある場合
コマンド
git remote add origin git@github.com:{GitHub のユーザ名}/test1.git
git branch -M main
git push -u origin main

上記コマンドの説明

コマンド
git branch -M main
ブランチ名を main に変更します。元々 main の場合は実行する必要はありません。

コマンド
git remote add origin git@github.com:{GitHub のユーザ名}/test1.git
origin に GitHub 上のリポジトリの住所となるリモートURL「git@github.com:{GitHub のユーザ名}/test1.git」を設定します。
この段階では、main ブランチと上流ブランチ(リモートリポジトリのブランチ)の関連付けは行われていません。

.git/config に次の内容が追加されます。
コード
[remote "origin"]
    url = git@github.com:{GitHub のユーザ名}/test1.git
    fetch = +refs/heads/*:refs/remotes/origin/*

コマンド
git push -u origin main
origin/main を main ブランチの上流ブランチ(-u : upstream)として設定してから、プッシュ(上流ブランチに変更の送信)します。
次回からは「git push」だけでプッシュできます。
但し、新しくブランチを作成した場合は、また「git push -u origin {ブランチ名}」を実行する必要があります。

.git/config に次の内容が追加されます。
コード
[branch "main"]
    remote = origin
    merge = refs/heads/main
これで、main ブランチの上流ブランチとして、origin(git@github.com:{GitHub のユーザ名}/test1.git)の関連付けが行われます。

また、push とは逆に 上流ブランチの内容をローカルに反映するには、pull を使います。
コマンド
git pull

6. git pull の動作について

git pull は、次のコマンドと同じ内容になります。
コマンド
git fetch
git merge origin/main

git fetch は、上流ブランチから最新情報をダウンロードします。
そして、origin/main ブランチのポインタが、リモートの main ブランチの最新コミットを指すようになります。

次に、git merge origin/main で、origin/main ブランチを現在のブランチにマージします。
これで、上流ブランチの内容がローカルに反映されます。
また、引数が origin/main となるのは、現在のブランチの上流ブランチが origin/main と設定されているため、自動的に指定されます。

7. リモートリポジトリのクローンの作成

空のフォルダで次のコマンドを実行すると、リモートリポジトリのクローンの作成できます。
コマンド
git clone git@github.com:{ユーザ名}/test1.git
上流ブランチの設定も行われるため、プッシュやプルが行えます。

8. ブランチの呼び名

リモートリポジトリ

GitHub などリモートにあるリポジトリ

リモートブランチ

GitHub などリモートにあるリポジトリのブランチ

リモート追跡ブランチ

リモートリポジトリのブランチと同じコミット ID を参照するための origin/main などのブランチのこと。
直接リモートのブランチを参照している訳ではない。
git fetch ででリモートリポジトリのファイルをローカルにダウンロードして、リモートと同じ状態をローカルに再現し、
リモートリポジトリのブランチが指すコミット ID を、origin/main に設定する。
これにより origin/main から、リモートリポジトリのブランチから見るのと同じように見ることができる。

追跡ブランチ

上流ブランチを持つローカルブランチです。リモート追跡ブランチとは異なります。
例えば、origin/main を上流ブランチとして持つ main ブランチのことです。
上流ブランチが設定されていないローカルだけのブランチは、追跡ブランチではありません。
< 前の記事

Git の基本

次の記事 >

ブランチの運用方法について

YouTube X

新着一覧

  • テーブル結合(CROSS JOIN、INNER JOIN、LEFT JOIN)MariaDB
  • 楽観ロック・悲観ロックMariaDB
  • カレントリードMariaDB
  • インデックスMariaDB
  • 論理削除(ソフトデリート)MariaDB
  • awk(オーク)の使い方についてLinux
  • NOT NULL 制約と NULL を許容した時の動作MariaDB
  • 外部キー制約MariaDB
  • MySQL と MariaDB の関係MariaDB
  • Docker で PostgreSQL のコンテナの使用Linux

アーカイブ

  • 2026/01
  • 2025/12
  • 2025/11
  • 2025/10
  • 2025/09
  • 2025/08
  • /00

以前のカテゴリー一覧

  • CakePHP3
  • CentOS7
  • HTML・CSS・JavaScript
  • Haskell
  • JavaScript
  • Kotlin
  • Laravel5
  • PHP
  • Python
  • Ruby
  • RubyOnRails5
  • TypeScript
  • Vue.js
  • Webサーバ講座
  • Webプログラミング講座
  • jQuery
  • linux
  • パソコン講座
  • ブログ
  • プログラミング講座
  • メモ帳作成講座
  • 数学

Copyright © 9cubed. All Rights Reserved.

プライバシーポリシー 利用規約
▲