Gitコマンド一覧|用途別早見表とよく使う基本コマンドの使い方を解説
Gitは、ソースコードの変更履歴を記録・管理する分散型バージョン管理システムです。日々の開発では、変更を記録する・ブランチを切り替える・リモートと同期する・操作を取り消すといった作業を、すべてコマンドで行います。本記事では、現場でよく使うGitコマンドを用途別の早見表にまとめたうえで、場面ごとの使い方と実例を初心者にもわかりやすく解説します。掲載コマンドはすべて実際に動作確認済みです。
目次
まとめ:用途で覚えれば、よく使うコマンドは20個ほどで足りる
Gitのコマンドは数多くありますが、日常の開発で頻繁に使うものは限られています。最初は「初期設定 → 変更の記録 → ブランチ操作 → リモート連携 → 取り消し・修正」という作業の流れに沿って、用途ごとに覚えるのが近道です。
- 記録の基本:
git addでステージ →git commitで確定、という2段階を押さえる。 - ブランチ操作:切り替えは、現在は専用コマンドの
git switchが推奨(従来のgit checkoutでも可)。 - リモート連携:取得は
git pull、送信はgit pushが基本。 - やり直し:作業ツリーを戻すなら
git restore、公開済みコミットの打ち消しはgit revertが安全。
まずは次の早見表で全体像をつかみ、気になるコマンドは後半の用途別解説で使い方を確認してください。
Gitコマンド早見表(用途別一覧)
現場で使用頻度の高いコマンドを、作業の場面ごとに整理しました。詳しい使い方は次章の用途別解説で説明します。
| 用途 | コマンド | 何をするか | よく使う例 |
|---|---|---|---|
| 初期設定 | git config |
ユーザー情報の設定 | git config --global user.name |
| 初期設定 | git init |
リポジトリ新規作成 | git init -b main |
| 初期設定 | git clone |
リモートを複製 | git clone <URL> |
| 記録 | git status |
変更状態の確認 | git status -s |
| 記録 | git add |
変更をステージ | git add . |
| 記録 | git commit |
変更を確定 | git commit -m "メッセージ" |
| 記録 | git diff |
差分の確認 | git diff |
| 記録 | git log |
履歴の表示 | git log --oneline |
| ブランチ | git branch |
一覧・作成・削除 | git branch -d <名> |
| ブランチ | git switch |
切り替え(推奨) | git switch -c <名> |
| ブランチ | git merge |
ブランチ統合 | git merge <名> |
| ブランチ | git rebase |
履歴を直線化 | git rebase main |
| リモート | git remote |
接続先の確認 | git remote -v |
| リモート | git fetch |
取得(統合しない) | git fetch origin |
| リモート | git pull |
取得して統合 | git pull origin main |
| リモート | git push |
変更を送信 | git push origin main |
| 取り消し | git restore |
変更を元に戻す | git restore <file> |
| 取り消し | git reset |
コミットを戻す | git reset --soft HEAD~1 |
| 取り消し | git revert |
打ち消しを記録 | git revert <hash> |
| 取り消し | git stash |
変更を一時退避 | git stash |
| 確認・調査 | git show |
コミット内容表示 | git show <hash> |
| 確認・調査 | git blame |
行ごとの変更者 | git blame <file> |
| 確認・調査 | git tag |
タグの作成・一覧 | git tag v1.0.0 |
| 確認・調査 | git cherry-pick |
特定コミット適用 | git cherry-pick <hash> |
用途別:Gitコマンドの詳しい使い方
① 初期設定とリポジトリの準備(config / init / clone)
Gitを使い始めるときは、まずコミットに記録される名前とメールアドレスを設定します。最初の一度だけ行えば、以降は不要です。
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
新しくバージョン管理を始めるなら git init、既存のリモートリポジトリを手元に複製するなら git clone を使います。なお、近年は既定ブランチ名を master から main とするのが主流です。新規作成時に明示しておくと安全です。
# 現在のディレクトリを main ブランチで初期化
git init -b main
# リモートを複製
git clone https://github.com/user/repo.git
なお、git init -b でブランチ名を指定できるのは Git 2.28以降です。それより古い環境では git init を実行したあと、git branch -M main で既定ブランチ名を main に変更してください。
② 変更を記録する(status / add / commit / diff / log)
Gitでは「変更を git add でステージ(次にコミットする候補にする)→ git commit で確定」という2段階で履歴を残します。コミット前には git status や git diff で内容を確認する習慣をつけると、不要なファイルの混入を防げます。
# 変更状態を簡潔に確認
git status -s
# 変更をステージ(. はすべて、ファイル名で個別指定も可)
git add .
# 変更内容の差分を確認
git diff
# メッセージを付けてコミット
git commit -m "ログイン機能を追加"
# 履歴を1行ずつ表示
git log --oneline
ファイルの一部分だけをステージしたいときは git add -p が便利で、変更を意味のある単位に分けてコミットできます。また、コミットメッセージは feat:(機能追加)や fix:(バグ修正)などの接頭辞を付けて簡潔にまとめておくと、あとから git log で履歴を振り返るときやレビュー時に変更の意図を追いやすくなります。
③ ブランチを操作する(branch / switch / merge / rebase)
ブランチは、本流(main)に影響を与えずに機能開発やバグ修正を進めるための仕組みです。ブランチの作成・一覧・削除は git branch、切り替えは git switch を使います。
# ブランチ一覧
git branch
# 新しいブランチを作成して切り替え(-c は create)
git switch -c feature/login
# 既存ブランチに切り替え
git switch main
# 不要になったブランチを削除
git branch -d feature/login
作業が終わったら git merge で本流に統合します。履歴を一本道に整えたい場合は git rebase を使いますが、すでに共有済みのコミットに対するリベースはトラブルの原因になるため、原則として未公開のコミットに限定するのが安全です。
# feature の変更を現在のブランチに統合
git merge feature/login
# 現在のブランチを main の最新に載せ替える
git rebase main
なお、直前にいたブランチへ素早く戻りたいときは git switch -(ハイフン)が使えます。切り替える前のブランチに一発で戻れるため、main と作業ブランチを行き来する場面で重宝します。1つのリポジトリで複数のブランチを別々の作業ディレクトリとして同時に開きたい場合は、Git worktreeとは何か?その概要とメリットを初心者向けにわかりやすく丁寧に徹底解説で紹介している git worktree が役立ちます。
④ リモートと連携する(remote / fetch / pull / push)
GitHubなどのリモートリポジトリと同期する操作です。接続先は git remote -v で確認できます。リモートの変更を取り込むには git fetch(取得のみ)と git pull(取得して統合)を、手元の変更を送るには git push を使います。
# 接続先リモートの確認
git remote -v
# リモートの変更を取得(ローカルには統合しない)
git fetch origin
# 取得してローカルに統合(fetch + merge)
git pull origin main
# ローカルの変更をリモートへ送信
git push origin main
履歴を不要に枝分かれさせたくない場合は git pull --rebase が便利です。リモートの変更を取り込んだうえで、自分のコミットをその先に載せ替える形になるため、マージコミットを増やさずに一本道の履歴を保てます。コマンドラインからGitHubのプルリクエストやIssueまで操作したい場合は、GitHub CLIとは?コマンドラインでGitHub操作を効率化するツールの概要もあわせて活用すると、Web画面を開かずに一連の作業を完結できます。
⑤ 取り消し・やり直し(restore / reset / revert / stash / commit –amend)
操作の取り消しは目的によって使い分けます。作業ツリーの変更を捨てて元に戻すなら git restore、直前のコミットを取り消すなら git reset、公開済みのコミットを安全に打ち消すなら git revert が適しています。
# 編集したファイルを最後のコミットの状態に戻す
git restore index.html
# ステージから外す(変更自体は残す)
git restore --staged index.html
# 直前のコミットを取り消し、変更はステージに残す
git reset --soft HEAD~1
# 公開済みコミットを打ち消す新しいコミットを作る
git revert <commit-hash>
作業を中断して別の対応を挟みたいときは git stash で変更を一時退避できます。直前のコミットメッセージを直したいだけなら git commit --amend が手軽です。
# 変更を一時退避し、作業ツリーをきれいにする
git stash
# 退避した変更を戻す
git stash pop
# 直前のコミットメッセージを修正
git commit --amend -m "正しいメッセージ"
ここで注意したいのが git reset --hard です。これは作業ツリーの変更ごと消してしまうため、未保存の変更があるときに使うと復元できなくなる恐れがあります。退避が複数になりそうなときは git stash push -m "作業の説明" のように名前を付けておくと、git stash list で中身を見分けやすくなります。
⑥ 確認・調査(show / blame / tag / cherry-pick)
特定コミットの内容は git show、各行を最後に変更した人とコミットは git blame で確認できます。リリースの目印には git tag を使い、別ブランチの特定コミットだけを取り込みたいときは git cherry-pick が便利です。
# コミットの詳細を表示
git show <commit-hash>
# ファイルの各行の変更履歴を表示
git blame README.md
# タグを作成して一覧表示
git tag v1.0.0
git tag
# 他ブランチの特定コミットを取り込む
git cherry-pick <commit-hash>
「ある一文がいつ追加・削除されたのか」を追いたいときは git log -S"検索語" が役立ちます。指定した文字列の増減があったコミットだけを絞り込めるため、バグの混入箇所や仕様変更のタイミングを特定するのに便利です。現在インストールされているGitのバージョンは git version(または git --version)で確認できます。新機能を使いたい場合はバージョン更新が前提になることがあるため、最新の安定版や変更点は公式サイトで確認してください。
git switch / git restore と git checkout の使い分け
かつてブランチの切り替えもファイルの復元も、すべて git checkout という1つのコマンドで行っていました。しかし多機能ゆえに操作ミスを招きやすかったため、Git 2.23(2019年8月)で役割を分けた git switch(ブランチ切り替え専用)と git restore(ファイル復元専用)が追加されました。この2つは当初「実験的(experimental)」として導入され、公式ドキュメント上は現在もその注記が残っています。とはいえ追加から年数を経て挙動は安定しており、実務では広く推奨・定着しているコマンドです。初心者はまず switch / restore から覚えるのがおすすめです。
| やりたいこと | 新(推奨) | 従来 |
|---|---|---|
| ブランチを切り替える | git switch main |
git checkout main |
| 作成して切り替える | git switch -c new |
git checkout -b new |
| ファイルを元に戻す | git restore file |
git checkout -- file |
| ステージから外す | git restore --staged file |
git reset HEAD file |
なお git checkout 自体が廃止されたわけではなく、今も幅広い操作に使える基本コマンドとして現役です。既存の手順書やチームの慣習に合わせて使い分けて問題ありません。
よくある質問(FAQ)
Gitコマンドとは何ですか?
Gitコマンドとは、バージョン管理システムGitを操作するために、ターミナル(コマンドライン)で入力する命令のことです。git に続けてサブコマンド(commit、push など)を指定する形式で、変更の記録・ブランチ管理・リモートとの同期など、Gitのあらゆる機能を呼び出せます。
Gitの基本的なコマンドは何ですか?
開発で最初に押さえるべき基本コマンドは、git init(リポジトリ作成)、git clone(複製)、git add(ステージ)、git commit(記録)、git push / git pull(送受信)、git branch / git switch(ブランチ操作)の8つ前後です。これらを覚えれば、日常的な開発作業のほとんどに対応できます。
Gitコマンドを使うメリットは何ですか?
GUIツールに比べて操作が速く、複雑な操作も正確に再現できる点が最大のメリットです。スクリプトに組み込んで自動化したり、CI/CD(継続的インテグレーション)と連携したりできるほか、どの環境でも同じコマンドが使えるため、チームで手順を共有しやすいという利点もあります。
Gitのコマンドはどこで使うのですか?
WindowsならGit BashやPowerShell、MacやLinuxならターミナルといった、コマンドラインのアプリケーションで実行します。Gitで管理しているフォルダ(リポジトリ)の中に移動してから入力するのが基本です。VS Codeなどのエディタに付属するターミナルからも同様に利用できます。
git checkout と git switch はどちらを使うべきですか?
ブランチの切り替えだけが目的なら、操作が明快でミスの少ない git switch をおすすめします。git checkout はブランチ切り替えとファイル復元を兼ねる多機能コマンドのため、目的に応じて switch / restore に分けて使うと安全です。