Git

GitHub の基本

GitHub はコードをクラウドで共有するサービスです。 pushpullclone を使ってチームで安全にコードを共有します。

ローカルリポジトリ vs リモートリポジトリ

💻

ローカルリポジトリ

用語

自分の PC にある Git リポジトリ。
git init で作った場所。

push
pull
🐙

リモートリポジトリ(GitHub)

用語

インターネット上の Git リポジトリ。
チーム全員がアクセスできる共有の場所。

概念

SSH 鍵で GitHub に接続する

GitHub への接続には SSHHTTPS の2種類があります。 SSH は一度設定すれば毎回パスワードを入力しなくてよく、現在の主流です。

1

SSH 鍵を生成する

# メールアドレスは GitHub に登録したものを使う
$ ssh-keygen -t ed25519 -C "your@email.com"
# 保存先とパスフレーズを聞かれる(Enter で全てスキップ可)
Enter file in which to save the key: (Enter)
Enter passphrase: (Enter)
2

公開鍵をコピーする

# 公開鍵を表示してコピー
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZD... your@email.com
3

GitHub に公開鍵を登録する

# GitHub の画面で操作
# Settings → SSH and GPG keys → New SSH key
# Title に名前(例: My PC)、Key に公開鍵を貼り付けて「Add SSH key」
4

接続テスト

$ ssh -T git@github.com
Hi ユーザー名! You've successfully authenticated.

SSH 設定後は、リポジトリの URL を https://github.com/... ではなく git@github.com:ユーザー名/リポジトリ名.git の形式で使います。GitHub のリポジトリページで「SSH」タブを選ぶと SSH 用 URL を確認できます。

GitHub にリポジトリを作成する

1

GitHub にログイン

github.com にアクセスしてアカウントにログインします。

2

「New repository」をクリック

右上の「+」ボタンから「New repository」を選択します。

3

リポジトリ名を入力

わかりやすい名前を入力。Public(公開)か Private(非公開)かを選択します。

4

「Create repository」をクリック

リポジトリが作成されると、接続用のコマンドが表示されます。

リモートリポジトリと接続する

ターミナル
# リモートリポジトリを「origin」という名前で登録 $ git remote add origin https://github.com/ユーザー名/リポジトリ名.git # 接続確認 $ git remote -v origin  https://github.com/ユーザー名/リポジトリ名.git (fetch) origin  https://github.com/ユーザー名/リポジトリ名.git (push)
コマンド

git push — GitHub に送る

ローカルのコミットを GitHub に送ります。チームメンバーがあなたの変更を見られるようになります。

ターミナル
# 初回:-u で追跡ブランチを設定(次回から git push だけで OK) $ git push -u origin main Enumerating objects: 3, done. To https://github.com/ユーザー名/リポジトリ名.git  * [new branch]  main -> main branch 'main' set up to track 'origin/main'. # 2回目以降 $ git push # feature ブランチを push する場合 $ git push -u origin feature/login
コマンド

git pull — 最新の変更を取得する

GitHub にある最新の変更をローカルに取り込みます。チームメンバーが push した内容を受け取るときに使います。

ターミナル
# GitHub から最新を取得してローカルにマージ $ git pull remote: Enumerating objects: 5, done. Updating a1b2c3d..e4f5g6h Fast-forward  README.md | 2 ++ # pull = fetch(取得)+ merge(マージ)を一度に行う
コマンド

git clone — リポジトリを複製する

GitHub 上のリポジトリを自分の PC にダウンロードします。既存プロジェクトに参加するときや オープンソースのコードを手元で試したいときに使います。

ターミナル
# リポジトリをクローン(フォルダが自動作成される) $ git clone https://github.com/ユーザー名/リポジトリ名.git Cloning into 'リポジトリ名'... remote: Enumerating objects: 10, done. # クローン後は自動で origin が設定されている $ cd リポジトリ名 $ git remote -v origin  https://github.com/ユーザー名/リポジトリ名.git (fetch) origin  https://github.com/ユーザー名/リポジトリ名.git (push)

よくあるエラーと対処法

! [rejected] main -> main (non-fast-forward)

原因:リモートに自分にないコミットがある。
対処:先に git pull してからもう一度 git push

Authentication failed

原因:GitHub の認証情報が間違っているか、Personal Access Token が必要。
対処:GitHub Settings → Developer Settings → Personal access tokens でトークンを生成してパスワード代わりに使う