ローカル開発で使う Git の基本コマンドを、用途別にまとめました。各コードブロックの右上にあるボタンでそのままコピーできます。ブランチ開発のコマンドはブランチ編にまとめています。
ローカル開発だけなら git init(リポジトリを作る)、git add(変更を選び出す)、git commit(記録する)、git status(状態を見る)、git log(履歴を見る)の5つで一通り回せます。
git init
git add .
git commit -m "コミットメッセージ"
git status
git log --oneline
Gitをインストールし、Git管理対象となるプロジェクトフォルダを用意したあとの基本操作をまとめています。リモートに関するコマンドについては別記事に纏める予定です。
本記事のコマンドを実際に動かした画面付きの記事:基本操作でよく使うコマンド実施例Gitの基本コマンド一覧
この章で扱うコマンドの一覧です。表の右上のボタンで表全体をコピーできます。
| やりたいこと | コマンド |
|---|---|
| リポジトリを新規作成する | git init |
| 変更をステージングエリアへ移す | git add . |
| ステージングした変更を記録する | git commit -m “メッセージ” |
| いま何が変更されているか見る | git status |
| 履歴を1行ずつ見る | git log –oneline |
| 直前のコミットをやり直す | git commit –amend -m “メッセージ” |
| 過去のコミットの状態を見に行く | git checkout ハッシュ |
| ファイルの変更を取り消す | git restore ファイル名 |
| コミットを取り消して戻る | git reset –soft ハッシュ |
| 操作履歴からハッシュを探す | git reflog |
【git init】リポジトリを初期化(新規作成)する
git init
新しいプロジェクトをGitで管理するにあたり、最初に行うコマンド。
このコマンドを実行すると、管理対象のフォルダ(ディレクトリ)に「.git」という新しいフォルダ(Gitリポジトリ)が作成され、ここにバージョン履歴などが保管されるようになります。
Windowsの初期設定では「.」から始まるフォルダは非表示になっていることが多いです。エクスプローラーの「表示」タブをクリックして隠しファイルにチェックを入れると、「.git」フォルダを確認できます。
【git add / git commit】ファイルを更新しローカルリポジトリに保存する
git add "ファイル名"
ファイルを更新後、それらをステージングエリアに追加するコマンド。
ファイル名の代わりに git add . を使用すると、変更された全てのファイルがステージングエリアに追加されます。
Gitで追跡したくない特別なファイルなどがなければ、git add . が使いやすいです。
git commit -m "コミットメッセージ"
ステージングエリアに追加された変更を、ローカルリポジトリに記録するコマンド。
コミットメッセージには、変更の概要や意図などを記述できます。
ステージングエリア(インデックスとも呼ばれます)は、コミットする前に変更を一時的に保持しておく場所です。「更新したファイルの中から、今回記録したいものだけを選んで並べておく台」とイメージすると分かりやすいです。
【git status】更新したファイルがステージングされているか確認する
git status
現在の作業ディレクトリとインデックス(ステージングエリア)の状態を表示するコマンド。
ファイルが更新されたあと、そのファイルがステージング(git add)されているかを確認できます。
【git log】更新履歴を確認する
git log
リポジトリの始まりまで遡って、すべてのコミット履歴を表示するコマンド。
コミットを識別するための文字列(ハッシュ値)や、コミットした人(Author)や日付(Date)、コミットメッセージが表示されます。
コミットが多くなってくるとログが長くなって見づらいので、以下のようなオプションを併用することが多いです。
| コマンド | 動作 |
|---|---|
| git log –oneline | 表示するコミット一つ一つを「ハッシュ + メッセージ」という一列でリスト表示する |
| git log -n 5 | 指定した数字分、表示コミット数を制限する。この例では最新の5つのみ表示される |
| git log –until=”2024-03-01″ | 指定した日付より前のコミットを表示する。この例では2024年2月29日以前のコミットを表示する |
| git log –author=”ユーザー名” | 指定したユーザー名のコミットのみを表示する |
| git log –grep=”Fix bug” | 指定した文字列がコミットメッセージに含まれるコミットのみを表示する |
| git log — index.html | 特定のファイルやディレクトリの変更のみを表示する。ファイルパスをコマンドの最後に追加する |
複数のオプションを併用することも可能です。以下は「特定のユーザーが2024年2月29日以前に変更した index.html ファイルのコミット履歴」を一列で表示するコマンドです。
git log --author="ユーザー名" --until="2024-03-01" --oneline index.html
【git commit –amend】直前の更新内容を変更する
git commit --amend -m "新しいコミットメッセージ"
直前のコミットを修正するコマンド。「軽微な修正なので直前のコミットに纏めたい」というときに便利です。
ハッシュも変更されるため、共有されているコミットを修正する場合は注意してください。(新しいコミットにした方が良い場合もあります。)
【git checkout】更新前や更新後に戻る
git checkout ハッシュ
指定されたハッシュ値のコミット時点でのコードやフォルダ構成になるよう、作業ディレクトリを更新するコマンド。また、これまでの更新内容は破棄せず保存されているため、元の状態のハッシュ値でコマンドを入力することで戻ることも可能です。
ただし、過去のコミットに戻った状態では git log コマンドを使用してもそれ以降のコミット履歴は表示されません。最新のハッシュ値を確認するには、後述の git reflog など別のコマンドを使います。
git checkout の役割は git switch と git restore に分かれた
git checkout は「ブランチを移動する」「ファイルの変更を取り消す」「過去のコミットを見に行く」と複数の役割を兼ねており、初心者がもっとも事故を起こしやすいコマンドでした。そこでGit 2.23から、役割ごとに分けた2つのコマンドが用意されています。
| やりたいこと | 新しいコマンド | 従来のコマンド |
|---|---|---|
| ブランチを移動する | git switch ブランチ名 | git checkout ブランチ名 |
| ブランチを作って移動する | git switch -c ブランチ名 | git checkout -b ブランチ名 |
| ファイルの変更を取り消す | git restore ファイル名 | git checkout — ファイル名 |
| ステージングを取り消す | git restore –staged ファイル名 | git reset HEAD ファイル名 |
従来の git checkout も引き続き使えますが、これから覚えるなら役割が1つに絞られた git switch と git restore の方が安全です。ブランチの移動についてはブランチ編で詳しく扱っています。
git restore ファイル名 は、コミットしていない変更を捨てるコマンドです。捨てた変更はハッシュを持たないため git reflog でも戻せません。実行前に、本当に消してよい変更かを確認してください。
【git reset】更新を破棄して戻る
git reset ハッシュ
これまでの更新内容は破棄し、指定したハッシュ値のコミットに戻るコマンド。基本的には、以下3種類のオプションを付けて実行します。
| オプション | ステージングエリア | 作業ディレクトリ | 使いどころ |
|---|---|---|---|
| –soft | そのまま残る | そのまま残る | 変更を保持したまま再度コミットし、コミットメッセージを修正したりコミットをまとめたりする |
| –mixed(既定) | 指定コミットの状態に戻る | そのまま残る | 変更を未ステージ状態に戻し、精査したり異なる方法でコミットを構成し直す |
| –hard | 指定コミットの状態に戻る | 指定コミットの状態に戻る | コミットを完全に取り消し、それに伴う変更もすべて破棄する |
いずれの処理をした場合も、後述の git reflog コマンドで処理前のハッシュ値を確認し、git checkout で戻れば取り消すことができます。
ただし、コミット前の変更はハッシュ値がなく保存されないため、--hard オプションを使う際は特に注意が必要です。
【git reflog】操作履歴を確認する
git reflog
Gitの操作履歴を表示するコマンドで、コミットのログを追跡できます。これにより、git checkout や git reset などで過去のコミットに戻った場合でも、直近のコミットハッシュを確認できます。
Gitとは直接関係ないが、使えると便利なコマンド&ショートカットキー
【clear / cd / ls】
Gitとは直接関係ありませんが、ターミナルで作業するうえで覚えておくと便利なコマンドです。(本記事では詳細は省きます。)
| コマンド | 動作 |
|---|---|
| clear | コマンド入力画面をクリアし、すっきりさせる |
| cd ディレクトリ名 | 同じ階層にあるディレクトリ(フォルダ)へ移動する |
| cd .. | 1つ上のディレクトリへ移動する |
| ls | 現在参照しているディレクトリ内のファイルやサブディレクトリをリスト表示する |
【q / :q!】
Gitとは直接関係ありませんが、覚えておくと便利なキー操作です。(本記事では詳細は省きます。)
| キー操作 | 動作 |
|---|---|
| q | git log などで表示される長いコミット履歴を閲覧しているとき、閲覧モードを終了してプロンプトに戻る |
| :q! | git commit をコミットメッセージなしで実行するなどしてエディタが開いてしまったとき、エディタを閉じてコマンド自体も取り消す |
【Next Step】ブランチ開発
本記事での基本操作に慣れたら「ブランチ開発」へ。
ブランチを使うことで、開発者はリスクを最小限に抑えつつ、新しいアイデアを自由に試すことができます。

