【Git】ローカル開発/基本操作でよく使うコマンド一覧

ローカル開発で使う Git の基本コマンドを、用途別にまとめました。各コードブロックの右上にあるボタンでそのままコピーできます。ブランチ開発のコマンドはブランチ編にまとめています。

まず覚えるべき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 switchgit restore の方が安全です。ブランチの移動についてはブランチ編で詳しく扱っています。

git restore ファイル名 は、コミットしていない変更を捨てるコマンドです。捨てた変更はハッシュを持たないため git reflog でも戻せません。実行前に、本当に消してよい変更かを確認してください。

【git reset】更新を破棄して戻る

git reset ハッシュ

これまでの更新内容は破棄し、指定したハッシュ値のコミットに戻るコマンド。基本的には、以下3種類のオプションを付けて実行します。

オプションステージングエリア作業ディレクトリ使いどころ
–softそのまま残るそのまま残る変更を保持したまま再度コミットし、コミットメッセージを修正したりコミットをまとめたりする
–mixed(既定)指定コミットの状態に戻るそのまま残る変更を未ステージ状態に戻し、精査したり異なる方法でコミットを構成し直す
–hard指定コミットの状態に戻る指定コミットの状態に戻るコミットを完全に取り消し、それに伴う変更もすべて破棄する

いずれの処理をした場合も、後述の git reflog コマンドで処理前のハッシュ値を確認し、git checkout で戻れば取り消すことができます。

ただし、コミット前の変更はハッシュ値がなく保存されないため、--hard オプションを使う際は特に注意が必要です。

【git reflog】操作履歴を確認する

git reflog

Gitの操作履歴を表示するコマンドで、コミットのログを追跡できます。これにより、git checkoutgit reset などで過去のコミットに戻った場合でも、直近のコミットハッシュを確認できます。

Gitとは直接関係ないが、使えると便利なコマンド&ショートカットキー

【clear / cd / ls】

Gitとは直接関係ありませんが、ターミナルで作業するうえで覚えておくと便利なコマンドです。(本記事では詳細は省きます。)

コマンド動作
clearコマンド入力画面をクリアし、すっきりさせる
cd ディレクトリ名同じ階層にあるディレクトリ(フォルダ)へ移動する
cd ..1つ上のディレクトリへ移動する
ls現在参照しているディレクトリ内のファイルやサブディレクトリをリスト表示する

【q / :q!】

Gitとは直接関係ありませんが、覚えておくと便利なキー操作です。(本記事では詳細は省きます。)

キー操作動作
qgit log などで表示される長いコミット履歴を閲覧しているとき、閲覧モードを終了してプロンプトに戻る
:q!git commit をコミットメッセージなしで実行するなどしてエディタが開いてしまったとき、エディタを閉じてコマンド自体も取り消す

【Next Step】ブランチ開発

本記事での基本操作に慣れたら「ブランチ開発」へ。
ブランチを使うことで、開発者はリスクを最小限に抑えつつ、新しいアイデアを自由に試すことができます。

ローカル開発のGitコマンドに関する記事一覧

この記事に出てきた用語

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次