GitHubを使った開発では、ブラウザから操作するだけでなく、ターミナルからGitやGitHub CLIを操作できるようになると作業効率が大きく向上します。
ただし、最初は
git statusgit addgit commitgit pushgit loggit diffgh repo create
など、多くのコマンドが出てくるため混乱しやすいところです。
そこでこの記事では、Git・GitHubでよく使うコマンドを単純な一覧ではなく、
「何をしたいときに、どのコマンドを使うか」
という観点から整理します。
GitとGitHub CLIの違い
最初に理解しておきたいのが、gitとghの違いです。
git
gitは、ローカルPC上のソースコードやファイルの変更履歴を管理するためのバージョン管理システムです。
たとえば、
git status
git add .
git commit -m "Update README"
git log
などを使用します。
gh
ghはGitHubが提供しているGitHub CLIです。
GitHub上のリポジトリ作成、Issue、Pull Requestなどをターミナルから操作できます。
たとえば、
gh auth status
gh repo create
gh repo view
などです。
ざっくり整理すると、
git
↓
ローカルのGitリポジトリを操作
gh
↓
GitHubというWebサービスを操作
という違いがあります。
Gitがインストールされているか確認する
git --version
例:
git version 2.x.x
バージョンが表示されればGitを利用できます。
GitHub CLIがインストールされているか確認する
gh --version
GitHub CLIがインストールされていれば、バージョン情報が表示されます。
GitHub CLIのログイン状態を確認する
gh auth status
現在GitHubにログインしているアカウントや認証状態を確認できます。
GitHub CLIを使う場合には、最初に確認しておくと便利です。
ログインしていない場合は、
gh auth login
を使用します。
Gitリポジトリを作成する
現在のフォルダをGitで管理したい場合は、
git init
を実行します。
実行すると、フォルダ内部に.gitディレクトリが作成されます。
この.gitの中にコミット履歴やブランチなどのGit管理情報が保存されます。
現在の状態を確認する
Gitを使っているときに最も頻繁に使用するコマンドの一つです。
git status
確認できるものには、
- 変更されたファイル
- 新しく追加されたファイル
- 削除されたファイル
- ステージング済みファイル
- 未追跡ファイル
- 現在のブランチ
などがあります。
何をすればよいか分からなくなった場合は、まず
git status
を実行するのが基本です。
短縮表示したい場合は、
git status -s
も便利です。
ファイルをステージングする
特定のファイルだけ追加する場合は、
git add README.md
すべての変更をステージングする場合は、
git add .
を使用します。
Gitでは基本的に、
ファイルを変更
↓
git add
↓
git commit
という流れになります。
コミットする
ステージングした変更を履歴として保存します。
git commit -m "Update README"
-mの後ろにコミットメッセージを指定します。
例:
git commit -m "Initial commit"
git commit -m "Fix calculation logic"
git commit -m "Add README"
コミットは単なる保存ではなく、
「この時点の変更内容を履歴として確定する」
操作です。
コミット履歴を確認する
git log
コミット履歴が表示されます。
例:
commit d3b0f23164e1de030d7b3ff0c7ac0f4900e57861
Author: example <example@example.com>
Date: Sun Aug 23 06:36:32 2026 +0900
Initial commit
表示される主な情報は、
- コミットID
- Author
- Date
- コミットメッセージ
です。
git logから抜ける方法
git logを実行すると、環境によってはページャー表示になります。
画面下部に
:
などが表示され、通常のコマンド入力に戻れないことがあります。
この場合は、
q
を押します。
quitのqと覚えておくと分かりやすいです。
コミット履歴を1行で表示する
通常のgit logは情報量が多いため、履歴だけ確認したい場合は、
git log --oneline
が便利です。
例:
d3b0f23 Initial commit
31fcf8a Add README
7291a34 Fix calculation logic
日常的な履歴確認では、こちらの方が見やすい場合があります。
ブランチ構造を含めて履歴を見る
git log --oneline --graph --decorate --all
複数ブランチを使っている場合に非常に便利です。
--oneline:1コミット1行--graph:ブランチをグラフ表示--decorate:ブランチ名やタグを表示--all:すべての参照を表示
Gitの履歴構造を視覚的に確認できます。
特定のコミット内容を確認する
git show <commit-id>
例:
git show d3b0f23
そのコミットで、
- どのファイルが変更されたか
- どの行が追加されたか
- どの行が削除されたか
を確認できます。
直前のコミットを見る場合は、
git show HEAD
でも確認できます。
現在の変更内容を確認する
git diff
まだgit addしていない変更内容を確認できます。
たとえば、
- 20本のタイトルを生成
+ 10本のタイトルを生成
のように、変更前と変更後を比較できます。
ステージング済みの変更を見る
git addした後の内容を確認したい場合は、
git diff --staged
または、
git diff --cached
を使用します。
流れとしては、
git diff
git add .
git diff --staged
git commit -m "Update files"
とすると、安全にコミットできます。
2つのコミットを比較する
git diff <commit1> <commit2>
例:
git diff d3b0f23 31fcf8a
2つの時点の違いを確認できます。
直前のコミットとの差分を見る
git diff HEAD^ HEAD
直前のコミットによって何が変化したのか確認できます。
変更履歴を調査するときに便利です。
変更されたファイル名だけ見る
git diff --name-only
詳細なコード差分ではなく、変更ファイルだけ確認できます。
変更されたファイルと変更種類を見る
git diff --name-status
例:
M main.py
A README.md
D old_file.py
主な記号は、
M = Modified
A = Added
D = Deleted
です。
ブランチを確認する
git branch
現在のブランチには*が付きます。
例:
* main
develop
feature-test
ブランチ名をmainへ変更する
git branch -M main
初期ブランチ名をmainに統一するときによく使います。
新しいブランチを作成する
git switch -c feature-test
feature-testという新しいブランチを作成し、そのブランチへ移動します。
ブランチを切り替える
git switch main
従来は、
git checkout main
も使われていましたが、単純なブランチ切り替えではgit switchの方が目的が明確です。
ブランチをマージする
たとえばfeature-testをmainへ統合する場合は、
git switch main
git merge feature-test
とします。
リモートリポジトリを確認する
git remote -v
例:
origin https://github.com/example/test.git (fetch)
origin https://github.com/example/test.git (push)
GitHubへの接続先が正しいか確認できます。
GitHub関連のトラブル調査では非常によく使います。
リモートリポジトリを追加する
git remote add origin https://github.com/USER/REPOSITORY.git
originはリモートリポジトリにつける名前です。
一般的にはGitHub上のメインリポジトリをoriginとします。
originを削除する
git remote remove origin
古いGitHubリポジトリが登録されている場合などに使用します。
たとえば、
git remote -v
で確認して、
git remote remove origin
で削除し、新しいリポジトリを登録できます。
originのURLを変更する
削除して追加し直さなくても、
git remote set-url origin https://github.com/USER/NEW-REPOSITORY.git
で変更できます。
URLだけ間違っている場合はこちらの方が簡単です。
GitHubへpushする
git push origin main
ローカルのmainブランチをGitHub上のoriginへ送信します。
初回pushで上流ブランチを設定する
git push -u origin main
-uによって、
ローカル main
↓
origin/main
の追跡関係を設定できます。
一度設定すれば、その後は単純に、
git push
だけで済むことが多くなります。
GitHubから最新状態を取得する
git pull
リモート側の変更を取得し、現在のブランチへ統合します。
リモートの情報だけ取得する
git fetch
git pullと異なり、自動的に現在のブランチへ統合しません。
まずGitHub側の状態だけ確認したい場合に便利です。
考え方としては、
git fetch
= 取得
git pull
= 取得 + 統合
です。
GitHubリポジトリをPCへコピーする
通常のGitでは、
git clone https://github.com/USER/REPOSITORY.git
を使用します。
GitHub CLIでは、
gh repo clone USER/REPOSITORY
でもクローンできます。
GitHub CLIで現在の認証状態を確認する
gh auth status
GitHub CLIを使う前に、
gh auth status
を実行しておくと、アカウント違いや認証エラーを発見しやすくなります。
GitHub CLIで新しいリポジトリを作る
対話形式の場合は、
gh repo create
です。
質問に答えながらリポジトリを作成できます。
現在のフォルダからGitHubリポジトリを作る
非常に便利なのが、
gh repo create my-project --public --source=. --remote=origin --push
です。
意味は、
my-project
GitHubリポジトリ名
--public
公開リポジトリ
--source=.
現在のフォルダを使用
--remote=origin
remote名をoriginにする
--push
ローカルコミットをGitHubへpush
です。
すでにローカルで開発しているプロジェクトをGitHubへ登録するときに使いやすいコマンドです。
非公開にする場合は、
gh repo create my-project --private --source=. --remote=origin --push
とします。
GitHubリポジトリをブラウザで開く
gh repo view --web
現在のGitリポジトリに対応するGitHubページをブラウザで開けます。
URLを探す必要がないため便利です。
GitHub上のリポジトリ情報を見る
gh repo view
ターミナル上でリポジトリ情報を確認できます。
GitHubのPull Requestを作る
gh pr create
対話形式でPull Requestを作成できます。
コミット情報を利用したい場合は、
gh pr create --fill
も便利です。
ファイルを元に戻す
まだコミットしていないファイルの変更を破棄する場合は、
git restore filename
を使用できます。
例:
git restore README.md
ただし、未コミットの変更が消えるため注意が必要です。
git addを取り消す
間違えてステージングした場合は、
git restore --staged filename
を使用できます。
例:
git restore --staged README.md
ファイルそのものの編集内容は残したまま、ステージングだけ解除できます。
一時的に変更を退避する
作業途中の変更を一時的に保存したい場合は、
git stash
を使用します。
退避した内容を戻す場合は、
git stash pop
です。
退避一覧を見る場合は、
git stash list
です。
GitHub上に存在するファイルを確認する
リモートブランチのファイル一覧を確認したい場合は、
git ls-tree --name-only origin/main
を使用できます。
これは、
origin/mainというGitツリーに登録されているファイルを表示する
コマンドです。
たとえば、
.gitignore
README.md
main.py
requirements.txt
のように表示されます。
Gitのユーザー名を確認する
git config --global user.name
Gitのメールアドレスを確認する
git config --global user.email
Gitのユーザー名を設定する
git config --global user.name "Your Name"
Gitのメールアドレスを設定する
git config --global user.email "your@example.com"
コミットのAuthor情報として使用されるため、GitHub運用開始時に確認しておくとよいでしょう。
現在のGit設定を確認する
git config --list
大量に表示される場合がありますが、
- user.name
- user.email
- remote
- credential
- branch
などの設定確認に使えます。
リモートブランチを含めて確認する
git branch -a
ローカルだけなら、
git branch
リモートも含めたい場合は、
git branch -a
と覚えておくと便利です。
GitHubの最新状態との差を見る
まず、
git fetch
を実行します。
その後、
git diff HEAD origin/main
とすると、
現在のローカル
↕
GitHub上の最新main
の差を確認できます。
ローカルだけに存在するコミットを見る
git log origin/main..HEAD
GitHubへまだpushしていないコミットを調査できます。
短縮表示なら、
git log --oneline origin/main..HEAD
が便利です。
よく使う基本ワークフロー
日常的な変更であれば、まず次の流れを覚えるだけでもかなり使えます。
git status
git diff
git add .
git diff --staged
git commit -m "Update files"
git push
意味は、
状態確認
↓
変更内容確認
↓
ステージング
↓
コミット予定内容確認
↓
コミット
↓
GitHubへ送信
です。
新しいローカルプロジェクトをGitHubへ登録する流れ
既存フォルダを初めてGitHubへ登録する場合は、次のような流れになります。
git init
git add .
git commit -m "Initial commit"
git branch -M main
gh auth status
gh repo create my-project --public --source=. --remote=origin --push
GitHub CLIを使えば、ブラウザでリポジトリを作ってURLをコピーし、
git remote add origin ...
git push ...
とする部分をかなり省略できます。
originを間違えた場合
まず確認します。
git remote -v
不要なoriginを削除します。
git remote remove origin
その後、新しいGitHubリポジトリを作成するなら、
gh repo create my-project --public --source=. --remote=origin --push
とできます。
URLだけ変更したい場合は、
git remote set-url origin https://github.com/USER/REPOSITORY.git
でも構いません。
「何が変更されたのか」を調べる基本セット
Gitの大きな価値は、単にGitHubへファイルを保存することではありません。
過去に何を変更したのか追跡できること
にあります。
まず履歴を見るには、
git log --oneline
特定のコミットを見るには、
git show <commit-id>
現在の変更を見るには、
git diff
2つのコミットを比較するには、
git diff <commit1> <commit2>
というように使い分けます。
git status・git log・git diffの役割
特に重要な3つは、
git status
git log
git diff
です。
役割を整理すると、
| コマンド | 主な役割 |
|---|---|
git status | 現在どうなっているか |
git log | 過去に何を記録したか |
git diff | 何が変わったか |
git show | 特定コミットで何が変わったか |
この4つを使えるだけでも、Gitのトラブル調査能力は大きく上がります。
注意して使うべきコマンド
Gitには変更を強制的に破棄できるコマンドがあります。
代表例が、
git reset --hard
です。
これは状況によって未コミットの変更を失う可能性があります。
また、
git restore filename
もファイルの未コミット変更を破棄します。
意味が分からない状態で、
git reset --hard
git clean -fd
などを実行するのは避けた方が安全です。
Gitで問題が発生した場合は、いきなり修正コマンドを実行するのではなく、
git status
git log --oneline
git remote -v
git diff
などで現在の状態を確認してから対処することが重要です。
よく使うコマンド早見表
| やりたいこと | コマンド |
|---|---|
| Gitのバージョン確認 | git --version |
| GitHub CLI確認 | gh --version |
| GitHubログイン状態確認 | gh auth status |
| Git初期化 | git init |
| 状態確認 | git status |
| 全ファイル追加 | git add . |
| コミット | git commit -m "message" |
| 履歴確認 | git log |
| 短い履歴 | git log --oneline |
| 詳細な履歴グラフ | git log --oneline --graph --decorate --all |
| 特定コミット確認 | git show <commit> |
| 未ステージ差分 | git diff |
| ステージ済み差分 | git diff --staged |
| ブランチ確認 | git branch |
| mainへ変更 | git branch -M main |
| ブランチ切替 | git switch main |
| 新規ブランチ | git switch -c feature |
| remote確認 | git remote -v |
| remote追加 | git remote add origin URL |
| origin削除 | git remote remove origin |
| origin変更 | git remote set-url origin URL |
| 初回push | git push -u origin main |
| push | git push |
| pull | git pull |
| リモート情報取得 | git fetch |
| clone | git clone URL |
| ステージング解除 | git restore --staged FILE |
| ファイル変更破棄 | git restore FILE |
| 作業一時退避 | git stash |
| 退避を戻す | git stash pop |
| GitHubリポジトリ作成 | gh repo create |
| 現在フォルダから作成 | gh repo create NAME --public --source=. --remote=origin --push |
| GitHubをブラウザで開く | gh repo view --web |
まず覚えるべき10個
すべてを一度に覚える必要はありません。
最初は次の10個で十分です。
git status
git add .
git commit -m "message"
git log --oneline
git diff
git diff --staged
git remote -v
git pull
git push
gh repo create
特に、
git status
↓
git diff
↓
git add
↓
git commit
↓
git push
という流れを理解すると、Git操作の全体像がかなり見えやすくなります。
まとめ
GitHubを使い始めると多数のコマンドが登場しますが、すべてを暗記する必要はありません。
重要なのは、
「今の状態を確認する」
git status
「変更内容を確認する」
git diff
「変更を履歴として残す」
git add .
git commit
「履歴を調べる」
git log
git show
「GitHubと同期する」
git pull
git push
という役割の違いを理解することです。
さらにGitHub CLIを利用すれば、
gh repo create
gh repo view
gh pr create
などによって、GitHub上の操作までターミナルから実行できます。
単にコマンドを覚えるのではなく、
作業する
↓
差分を確認する
↓
履歴として保存する
↓
GitHubへ送る
↓
必要になったら過去の履歴を調べる
というGitの基本的な流れを理解しておくと、開発規模が大きくなっても同じ考え方を利用できます。

