GitHub の基本
GitHub はコードをクラウドで共有するサービスです。
push・
pull・
clone
を使ってチームで安全にコードを共有します。
ローカルリポジトリ vs リモートリポジトリ
ローカルリポジトリ
用語
自分の PC にある Git リポジトリ。
git init で作った場所。
リモートリポジトリ(GitHub)
用語
インターネット上の Git リポジトリ。
チーム全員がアクセスできる共有の場所。
SSH 鍵で GitHub に接続する
GitHub への接続には SSH と HTTPS の2種類があります。 SSH は一度設定すれば毎回パスワードを入力しなくてよく、現在の主流です。
SSH 鍵を生成する
# メールアドレスは GitHub に登録したものを使う$ ssh-keygen -t ed25519 -C "your@email.com"# 保存先とパスフレーズを聞かれる(Enter で全てスキップ可)Enter file in which to save the key: (Enter)Enter passphrase: (Enter)
公開鍵をコピーする
# 公開鍵を表示してコピー$ cat ~/.ssh/id_ed25519.pubssh-ed25519 AAAAC3NzaC1lZD... your@email.com
GitHub に公開鍵を登録する
# GitHub の画面で操作# Settings → SSH and GPG keys → New SSH key# Title に名前(例: My PC)、Key に公開鍵を貼り付けて「Add SSH key」
接続テスト
$ ssh -T git@github.comHi ユーザー名! You've successfully authenticated.
SSH 設定後は、リポジトリの URL を
https://github.com/... ではなく
git@github.com:ユーザー名/リポジトリ名.git
の形式で使います。GitHub のリポジトリページで「SSH」タブを選ぶと SSH 用 URL を確認できます。
GitHub にリポジトリを作成する
GitHub にログイン
github.com にアクセスしてアカウントにログインします。
「New repository」をクリック
右上の「+」ボタンから「New repository」を選択します。
リポジトリ名を入力
わかりやすい名前を入力。Public(公開)か Private(非公開)かを選択します。
「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 でトークンを生成してパスワード代わりに使う