🐙

【備忘録】GitHubの基本的な使い方

2024/11/29に公開

新しい計算機での初期設定

Gitのインストール(最新の情報の確認を推奨)

  • Gitの公式サイトからインストーラをダウンロード
  • インストーラを起動し、インストール

SSHキーの設定(2024/11/29時点)

  • 以下のコマンドを入力し、SSHキーを作成
ssh-keygen -t ed25519 -C "hogehoge@gmail.com"
  • そのままEnterを押す
Enter file in which to save the key (/home/user01/.ssh/id_ed25519):
  • パスフレーズを入力(空欄でも可) ※パスフレーズを入力すると、pushする際に毎回求められる
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
  • 以下のように出力される
Your identification has been saved in /home/user01/.ssh/id_ed25519
Your public key has been saved in /home/user01/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:*************************** hogehoge@gmail.com
The key's randomart image is:
+--[ED25519 256]--+
|                 |
|                 |
|                 |
|                 |
| (sha256 image)  |
|                 |
|                 |
|                 |
|                 |
+----[SHA256]-----+
  • ~/.ssh/id_ed25519(秘密鍵)と、~/.ssh/id_ed25519.pub(公開鍵)が作成されていることを確認
  • ~/.ssh/id_ed25519.pubの中身をコピーしておく
    • 最初から最後のメールアドレスまでそのまますべてコピーする
  • GitHubのトップページにアクセスし、右上のアイコンをクリック
  • Settingsをクリック
  • SSH and GPG keysをクリック
  • New SSH keyをクリック
  • Titleに任意の名前を入力
  • Keyに~/.ssh/id_ed25519.pubの中身を貼り付け
  • Add SSH keyをクリック
  • 以下のコマンドでssh接続できるかを確認
ssh -T git@github.com
  • 以下の通り出力されたらOK
Hi username! You've successfully authenticated, but GitHub does not provide shell access.

新しくプロジェクトを始める

リポジトリの作成

  • GitHubのトップページにアクセスし、新しくリポジトリを作成
  • リポジトリ名を入力し、Create repositoryをクリック
    • README.mdの作成推奨
    • .gitignoreやLICENSEの設定も可能
  • リポジトリのsshのURLをコピー
    以下を実行
git init
git config user.name "(githubのユーザ名)"
git config user.email "(githubのメールアドレス)"
git remote add origin (リポジトリのsshのURL)
git add README.md
git commit -m "first commit"
git branch -M main
git push -u origin main

既存のプロジェクトに入るとき

  • 以下を最初に実行
git clone (リポジトリのsshのURL)
git config user.name "(githubのユーザ名)"
git config user.email "(githubのメールアドレス)"
git remote add origin (リポジトリのsshのURL)

基本操作

git add (ファイル名) # ファイルをステージング
git status # 現在のステータスを確認 
git commit -m "(コミットメッセージ)" # コミット
git push origin (pushするブランチ名) # リモートリポジトリにpush
git branch (ブランチ名) # ブランチを作成
git checkout (ブランチ名) # ブランチを切り替え
git pull origin (pullするブランチ名) # リモートリポジトリからpull
# 以下と同じ
# git fetch origin (pullするブランチ名) # リモートリポジトリからfetch
# git merge origin/(pullするブランチ名) # マージ

リモートの内容を反映させる時のgit fetchgit mergeについて

  • git fetchはリモートリポジトリの最新情報を取得するが、ローカルリポジトリにはマージされない
    • ローカルリポジトリにはorigin/(リモートリポジトリのブランチ名)という形でブランチが作成される
    • git fetch --allで全てのリモートリポジトリの最新情報を取得できる
  • git mergeはリモートリポジトリの最新情報をローカルリポジトリにマージする
    • コンフリクトはローカルで発生し、解消した後にpushする

ブランチを合体するときのgit mergeについて

  • マージ先(マージされる方、マージ後にそのブランチが残る方)のブランチに移動してから、以下を実行
git merge (マージ元のブランチ名)

mergeの詳細

  • ローカルブランチ内でマージ
git merge (マージ元のブランチ名)
  • リモートブランチに直接マージ
git merge origin/(マージ元のブランチ名)

コンフリクトの解消

  • コンフリクトが発生した場合、以下のようなメッセージが表示される
Auto-merging (ファイル名)
CONFLICT (content): Merge conflict in (ファイル名)
Automatic merge failed; fix conflicts and then commit the result.
  • コンフリクトが発生したファイルを開くと、以下のような箇所が表示される
<<<<<<< HEAD
// ローカルリポジトリの変更内容
=======
// リモートリポジトリの変更内容
>>>>>>> (リモートリポジトリのブランチ名)

細かいこと

ブランチを作成して移動

  • ブランチを作成して移動
git checkout -b (ブランチ名)

ブランチの削除

  • ローカルリポジトリのブランチを削除
git branch -d (ブランチ名)
  • リモートリポジトリのブランチを削除
git push origin --delete (ブランチ名)

コミットの取り消し

  • 直前のコミットを取り消す
git reset --soft HEAD^
  • 直前のコミットを取り消し、変更内容も取り消す
git reset --hard HEAD^

リモートリポジトリの変更を取り消す

  • ローカルリポジトリの変更を取り消す
git checkout -- (ファイル名)
  • リモートリポジトリの変更を取り消す
git fetch origin
git reset --hard origin/main

ローカルリポジトリの変更を取り消す

  • ローカルリポジトリの変更を取り消す
git checkout -- (ファイル名)

コミットログの確認

  • コミットログを確認
git log
  • コミットログを確認(簡易版)
git log --oneline

git add .git add -A

  • git add .はカレントディレクトリ配下
  • git add -Aは.gitディレクトリ配下

;; - git add .は新規ファイルと変更ファイルをステージング
;; - git add -Aは新規ファイルと変更ファイルと削除ファイルをステージング
;; - git add -uは変更ファイルと削除ファイルをステージング

GitHubで編集を提案

Discussion