git コマンド早見表|基本から逆引きまでシーン別に解説

Gitのコマンドは数が多く、いざという時に忘れてしまったり、目的の操作にどのコマンドを使えばよいか分からなくなったりすることがあります。
この記事では、Git入門者向けに日常業務でよく使う基本コマンドの一覧から、目的別の使い方、ミスした時の対処法までを網羅的に解説します。
この記事を読めば、自分の目的(履歴の保存、同期、復元など)に応じた正しいコマンドとオプションを選択し、エラーを出さずにGit操作を完結できる状態になれます。

まずはこれだけ!日常業務で頻繁に使う基本Gitコマンド7選

Gitを日常的に利用する上で、最低限覚えておきたい基本コマンドが存在します。
これらのコマンドは、ファイルの変更履歴を管理し、チームメンバーと共同作業を進めるための土台となります。
ここでは、特に使用頻度が高い7つのコマンドに絞って、それぞれの役割とよく使う使い方を解説します。

まずはこれらのコマンドを確実にマスターすることで、日々の開発業務をスムーズに進められるようになります。

変更をステージングエリアに追加する (git add)

git addは、ファイルやディレクトリの変更内容をコミットの対象にするため、ステージングエリアと呼ばれる場所に追加するコマンドです。
ステージングエリアは、リポジトリに記録(コミット)したい変更を一時的に置いておくための領域です。
特定のファイルだけを追加したり、ディレクトリ内の全ての変更を一括で追加したりできます。

このadd操作を行うことで、作業ディレクトリ内の変更点の中から、次のコミットに含めるものだけを選択的に準備することが可能です。

変更内容をローカルリポジトリに記録する (git commit)

git commitは、ステージングエリアに追加された変更内容を、意味のあるひとかたまりの更新としてローカルリポジトリに記録するためのコマンドです。
コミット時には「-m」オプションに続けてコミットメッセージを記述し、どのような変更を行ったのかを後から見て分かりやすいように記録します。
このコミットという単位で変更履歴が保存されていくため、Gitを使ったバージョン管理の中核をなす操作です。

正確なコミット履歴は、将来のコードレビューや問題発生時の原因追跡に役立ちます。

ローカルリポジトリの変更をリモートに反映する (git push)

gitpushは、ローカルリポジトリにコミットした変更内容を、GitHubやGitLabなどのリモートリポジトリにアップロードして反映させるためのコマンドです。
この操作によって、自分のPC内だけで管理していた変更履歴がチームメンバーと共有可能になります。
どのリモートリポジトリのどのブランチに変更を反映させるかを指定して実行します。

共同開発において、自分の作業内容を他のメンバーに知らせ、プロジェクト全体のコードベースを更新するために不可欠です。

リモートリポジトリの最新情報を取得して統合する (git pull)

gitpullは、リモートリポジトリの最新の変更内容を取得し、現在作業しているローカルのブランチに自動的に統合(マージ)するコマンドです。
チームで開発していると、他のメンバーがリモートリポジトリを更新することがあります。
作業を始める前やpushする前にこのコマンドを実行することで、自分のローカル環境を最新の状態に保ち、コンフリクト(競合)の発生を最小限に抑えられます。

pullは、リモートの内容を取得する「fetch」と、取得した内容を統合する「merge」を一度に行う便利なコマンドです。

ファイルやディレクトリの状態を確認する (git status)

git statusは、作業ディレクトリやステージングエリアにあるファイルの状態を確認するためのコマンドです。
どのファイルが変更されたか、どのファイルがステージングされているか、まだGitの追跡対象になっていないファイルはどれか、といった情報を一覧で表示します。
コミットする前に変更内容を確認したり、作業状況を把握したりする際に頻繁に使用されます。

現在のブランチ名やリモートとの差分状況なども示してくれるため、作業の起点となる重要なコマンドです。

これまでのコミット履歴を一覧で表示する (git log)

git logは、これまでのコミット履歴を一覧で表示するコマンドです。
各コミットのハッシュ値(一意のID)、作成者、日時、そしてコミットメッセージが表示されます。
この履歴を確認することで、プロジェクトがどのように変更されてきたかを時系列で追うことが可能です。

オプションを指定すれば、特定のブランチの履歴のみを表示したり、表示形式を簡潔にしたり、特定のキーワードでコミットを検索したりすることもできます。
過去の変更内容を調査したり、特定のコミットに戻したりする際に役立ちます。

リモートリポジトリの内容をローカルに複製する (git clone)

git cloneは、既存のリモートリポジトリを、自分のローカル環境にまるごと複製(クローン)するためのコマンドです。
この操作により、リモートリポジトリの完全なコピーが作成され、すべてのコミット履歴やブランチ情報が含まれた新しいローカルリポジトリが手元にできあがります。
プロジェクトに新しく参加する際や、他の人が作成したオープンソースプロジェクトなどを自分の環境で動かしてみたい場合に、最初に行う操作です。

基本コマンドを覚えたら、次は実際の開発フローに沿った使い方を学びましょう。

開発の初日から使える!作業フローで覚えるGitコマンド操作

Gitコマンドは単体で覚えるよりも、実際の開発作業の流れに沿って一連の操作として理解する方が効率的です。
ここでは、プロジェクトを開始するための初期設定から、日々行うファイルの編集、そして変更内容をチームで共有するまでの基本的な使い方をステップごとに解説します。
このフローを覚えることで、コマンドの役割と実行するタイミングが自然に身につきます。

最初に1回だけ実行するユーザー情報の初期設定

Gitを初めて利用する際には、コミット履歴に記録するユーザー名とメールアドレスを設定する必要があります。
この設定は、PCごとに一度だけ行えば問題ありません。
「git config –global user.name “Your Name”」と「git config –global user.email “youremail@example.com”」という2つのコマンドで設定します。

–globalオプションを付けることで、そのPC上のすべてのGitリポジトリでこのユーザー情報が使われるようになります。
この設定により、誰がそのコミットを行ったのかが明確になります。

既存のリポジトリをローカル環境に準備する手順

開発を始めるには、まず作業対象のリポジトリをローカル環境に準備する必要があります。
方法は2つあり、1つはGitHubなどに存在する既存のリモートリポジトリを「git clone」コマンドで複製する方法です。
もう1つは、まだGitで管理されていない手元のディレクトリを「git init」コマンドで初期化し、新しいローカルリポジトリを作成する方法です。

initで作成した場合は、後からリモートリポジトリと接続する作業が必要になります。
通常、チーム開発ではcloneを使うケースがほとんどです。

ファイルを編集してからリモートに保存するまでの基本的な流れ

日々の開発作業で最も頻繁に行われるのが、ファイルを編集し、その変更をリモートリポジトリに保存するまでの一連の流れです。
まず、ソースコードなどを編集した後、「git add」コマンドで変更したファイルをステージングエリアに追加します。
次に、「git commit」でステージングした内容をローカルリポジトリに記録します。

最後に、「git push」コマンドを使い、ローカルリポジトリのコミットをリモートリポジトリに送信して、チームメンバーと共有します。
この「add→commit→push」が基本的な作業サイクルです。
しかし、時には操作を間違えてしまうこともあります。

「しまった!」という時に役立つ目的別の逆引きGitコマンド集

Gitを使っていると、「コミットメッセージを間違えた」「不要なファイルまでaddしてしまった」といったミスは誰にでも起こりえます。
そんな時に役立つのが、操作を取り消したり、過去の状態に戻したりするためのコマンドです。
ここでは、よくある失敗例ごとに、どのコマンドを使って元に戻すことができるのかを逆引き形式で解説します。
これらのコマンドを覚えておけば、いざという時に冷静に対処できます。

直前のコミットメッセージを修正したい

直前のコミットメッセージにタイポがあったり、内容を修正したい場合は、「git commit –amend」コマンドを使用します。
このコマンドを実行すると、テキストエディタが起動し、最新のコミットメッセージを編集できます。
また、ステージングエリアにファイルを追加してからこのコマンドを実行すると、直前のコミットに変更内容を含めて、コミットをやり直すことも可能です。

ただし、リモートリポジトリにpush済みのコミットに対しては、履歴の改変につながるため使用を避けるべきです。

git addしたファイルをステージングから取り下げたい

誤って不要なファイルをステージングエリアに追加してしまった場合、「git reset HEAD」コマンドで特定のファイルをステージングから取り下げることができます。
この操作はステージングエリアの状態を変更するだけで、ファイル自体の変更内容は作業ディレクトリに残ったままです。
ディレクトリ内のすべてのファイルを一度に取り下げる場合は、「git reset HEAD .」と実行します。

これにより、コミットに含めるファイルを安全に再選択できるようになります。

ローカルでのコミットそのものを、なかったことにしたい

ローカルリポジトリで行ったコミット自体を、なかったことにしたい場合は「git reset」コマンドを使用します。
resetにはいくつかのオプションがあり、「–soft」はコミットのみを取り消し変更内容はステージングされたまま、「–mixed」(デフォルト)はコミットとステージングを取り消し変更内容は作業ディレクトリに残ります。
「–hard」はコミット、ステージング、作業ディレクトリの変更すべてを取り消すため、使用には注意が必要です。

HEAD~1のように指定することで、直前のコミットを取り消せます。

リモートにpushしたコミットを安全に打ち消したい

すでにリモートリポジトリにpushしてしまったコミットの内容を打ち消したい場合、「git revert」コマンドを使用します。
このコマンドは、指定したコミットが行った変更を完全に取り消すための新しいコミットを自動で作成します。
過去の履歴を改変するのではなく、打ち消しの履歴を追加する形になるため、チームメンバーが共有しているリポジトリでも安全に利用できます。

revertを実行した後は、作成された新しいコミットを通常通りpushしてリモートに反映させます。

特定のファイルへの変更内容をコミット前の状態に戻したい

作業ディレクトリ内で行った特定のファイルへの変更を、コミット前の状態に完全に戻したい場合は、「git restore」コマンドが便利です。
このコマンドを実行すると、ステージングされていない変更が破棄され、ファイルが最新のコミットの状態に復元されます。
古いバージョンのGitでは「git checkout –」が使われていましたが、現在はrestoreの使用が推奨されています。

変更を元に戻す操作は、特にチーム開発におけるブランチ操作で重要になります。

チーム開発の必須スキル!ブランチ操作関連の主要コマンド

Gitのブランチは、元のコードに影響を与えることなく、新しい機能の開発やバグ修正といった作業を並行して進めるための非常に強力な機能です。
チーム開発では、各自が専用のブランチを作成して作業し、完成後にメインのブランチに統合するのが一般的です。
ここでは、ブランチを作成、切り替え、統合、削除といった一連の操作に必要な主要コマンドを解説します。

新しいブランチを作成して作業を開始する

新しい作業を開始する際は、まずブランチを作成します。
「git branch」コマンドで新しいブランチを作成できます。
ただし、このコマンドはブランチを作成するだけで、現在の作業ブランチは移動しません。

ブランチの作成と同時にそのブランチへ移動(チェックアウト)したい場合は、「git switch -c」または古いコマンドである「git checkout -b」を実行すると、1つのコマンドで両方の操作が完了します。

作業するブランチを切り替える

複数のブランチを並行して作業している場合、コンテキストに応じて作業ブランチを切り替える必要があります。
ブランチの切り替えには「git switch」コマンドを使用します。
このコマンドを実行すると、作業ディレクトリ内のファイルが、指定したブランチの最新のコミットの状態に自動的に更新されます。

古いバージョンのGitでは「git checkout」がこの役割を担っていましたが、現在はブランチ操作に特化したswitchの使用が推奨されています。

現在のブランチに他のブランチの変更内容を取り込む

あるブランチでの作業が完了したら、その変更内容をメインブランチなど、別のブランチに取り込む必要があります。
この操作をマージと呼び、「git merge」コマンドで実行します。
これにより、指定したブランチの変更履歴が現在のブランチに統合されます。

また、履歴を一直線に整えたい場合は「git rebase」というコマンドも使われますが、rebaseは履歴を書き換えるため、使い方を理解した上で慎重に利用する必要があります。

不要になったローカルブランチを削除する

機能開発が完了し、メインブランチへのマージが終わった後など、役目を終えたブランチはリポジトリを整理するために削除することが推奨されます。
ローカルにあるブランチを削除するには、「git branch -d」コマンドを実行します。
-dオプションは、マージ済みのブランチのみを安全に削除するためのものです。

マージされていないブランチを強制的に削除したい場合は、-Dオプションを使用しますが、作業内容が失われる可能性があるため注意が必要です。

不要になったリモートブランチを削除する

ローカルブランチを削除しても、リモートリポジトリ上のブランチは残ったままです。
リモートブランチも不要になった場合は、明示的に削除する必要があります。
git push origin –deleteコマンドを実行することで、指定したリモートリポジトリ(この場合はorigin)からブランチを削除できます。

チームで開発しているリポジトリをクリーンに保つために、マージ済みのブランチはローカルとリモートの両方から削除する習慣をつけることが望ましいです。
ブランチ操作でよく出てくるcheckoutコマンドには、歴史的な経緯と新しい代替コマンドが存在します。

もう迷わない!git switch/restoreとgit checkoutの正しい使い分け

かつてGitでは「git checkout」というコマンドが、ブランチの切り替えとファイルの変更復元の両方を担っており、多機能ゆえに初心者には分かりにくいという側面がありました。
現在では、それぞれの目的に特化した「git switch」と「git restore」という新しいコマンドが導入され、より直感的な操作が可能になっています。
ここでは、これら3つのコマンドの役割を比較し、最新のベストプラクティスに基づいた正しい使い分けを解説します。

ブランチの切り替えに特化したコマンド「git switch」

gitswitchは、その名の通りブランチの切り替え(スイッチ)専用のコマンドです。
主な使い方として、「gitswitch」で既存のブランチに切り替える操作と、「gitswitch-c」で新しいブランチを作成して、すぐにそのブランチに切り替える操作があります。
役割がブランチ操作に限定されているため、意図が明確で分かりやすいのが特徴です。

新しいバージョンのGitを使用している場合、ブランチの切り替えにはcheckoutの代わりにswitchを使用することが推奨されます。

ファイルの変更復元に特化したコマンド「git restore」

git restoreは、作業ディレクトリ内のファイルの変更を元に戻す(復元する)ための専用コマンドです。
「git restore」と実行すると、そのファイルに対するコミットされていない変更が取り消され、最新のコミットの状態に戻ります。
また、「git restore –staged」とすることで、ステージングエリアからファイルを取り下げる(git addの取り消し)ことも可能です。

ファイルの変更を取り消す目的では、checkoutよりもrestoreの方が意図が明確になります。

旧コマンド「git checkout」が担っていた役割の変遷

旧コマンドであるgit checkoutは、歴史的に「ブランチを切り替える」「ファイルの変更を元に戻す」「過去のコミットの状態を確認する」といった複数の役割を持っていました。
この多機能さが混乱を招く一因となっていたため、Git 2.23からブランチ操作は「git switch」、ファイルの復元は「git restore」へと機能が分割されました。
現在でも後方互換性のためにgit checkoutは利用できますが、これから学習する人や新しい環境で作業する人は、役割が明確なswitchとrestoreを使うことが推奨されています。

チェックアウトという言葉はブランチ切り替えの文脈で依然として広く使われています。

Gitコマンドに関するよくある質問

Gitの操作に慣れてくると、特定のコマンドの細かい違いや、状況に応じた最適なコマンドの選択について疑問が生まれることがあります。
ここでは、特に初学者がつまずきやすい点や、実務で頻繁に議論されるトピックについて、よくある質問形式で回答します。
pullとfetchの違い、commitの取り消し方法など、より深い理解につながる内容を取り上げます。

Q. `git pull` と `git fetch` はどう使い分けるのが正しいですか?

結論として、git fetchはリモートリポジトリの最新情報を取得するだけで、ローカルのコードには反映しません。
一方、git pullは最新情報を取得した上で、現在のブランチに自動でマージします。

安全に最新の状態を確認したい場合や、マージする前に変更内容を確認したい場合はfetchを使います。
特にこだわりがなければ、取得と統合を一度に行うpullが便利です。

Q. 間違えてコミットした内容を修正するには、どのgitコマンドを使えばいいですか?

ローカルでのコミットを取り消す場合はgit resetを、リモートにpush済みのコミットを打ち消す場合はgit revertを使用します。
resetは履歴自体を書き換えるため、共有リポジトリでは使用を避けるべきです。
revertは、間違いを打ち消すための新しいコミットを作成するため、履歴が残り安全に間違いを修正できます。

状況に応じて適切なコマンドを選択することが重要です。

Q. リモートリポジトリにpushしたコミットを取り消すことはできますか?

はい、git revertコマンドを使用することで安全に取り消せます。
このコマンドは指定したコミットの変更内容を打ち消す新しいコミットを作成します。
これにより、push済みの履歴を直接書き換えることなく、事実上の取り消しが可能です。

作成された打ち消しコミットを再度pushすることで、リモートリポジトリに反映されます。
共有している履歴の改変はコンフリクトの原因になるため、避けるべきです。

まとめ

本記事では、Gitの基本的なコマンドから、開発フローに沿った実践的な使い方、エラー発生時の対処法、ブランチ操作、そしてswitch/restoreといった新しいコマンドの役割までを解説しました。
日常的に使うコマンドは限られていますが、状況に応じて適切なコマンドを選択できることが重要です。

この記事が、Gitコマンドを使いこなすためのリファレンスとして役立つことを目指しました。
このまとめを参考に、日々の開発業務でGitを効果的に活用してください。

テックジムPython基礎コース(初心者向け)

対面・無料のプログラミング講座|東京で毎週開催|初心者向けPython講座

プログラミング学習に興味がある方は、まずは無料体験会へ

無料体験会・お申し込みはこちら