筆者の備忘録用に、ローカル開発におけるGitの基本コマンドをまとめました。
ブランチ開発のコマンド一覧は こちら
リモートに関するコマンドについては別記事に纏める予定です。
Gitの基本コマンド一覧
【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】オプション一覧
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
特定のファイルやディレクトリのコミット変更のみを表示したい場合は、ファイルパスをコマンドの最後に追加する。このコマンドではindex.html
ファイルのコミットのみを表示する。
git log --author="ユーザー名" --until="2024-03-01" --oneline index.html
複数のオプションを併用することも可能。このコマンドでは「特定のユーザーが2024年2月29日以前に変更したindex.html
ファイルのコミット履歴」を一列で表示する。
【git commit –amend】直前の更新内容を変更する
git commit --amend -m "新しいコミットメッセージ"
直前のコミットを修正するコマンド。「軽微な修正なので直前のコミットに纏めたい」というときに便利。
ただしハッシュも変更されるため、共有されているコミットを修正する場合は注意。(新しいコミットにした方が良い場合も。)
【git checkout】更新前や更新後に戻る
git checkout ハッシュ
指定されたハッシュ値のコミット時点でのコードやフォルダ構成になるよう、作業ディレクトリを更新するコマンド。また、これまでの更新内容は破棄せず保存されているため、元の状態のハッシュ値でコマンドを入力することで戻ることも可能。
ただし、過去のコミットに戻った状態ではgit log
コマンドを使用してもそれ以降のコミット履歴は表示されません。最新のハッシュ値を確認するには、後述のgit reflog
など別のコマンドを使います。
【git reset】更新を破棄して戻る
git reset ハッシュ
これまでの更新内容は破棄し、指定したハッシュ値のコミットに戻るコマンド。基本的には、以下3種類のオプションを付けて実行する。
- –soft
-
指定されたコミットに移動するが、ステージングエリアと作業ディレクトリはそのまま残す。
→ 変更内容はステージングエリアに保持したままのため、その状態で再度コミットすることでコミットメッセージを修正したり、コミットをまとめたりできる。 - –mixed
-
指定されたコミットに移動し、ステージングエリアもそのコミットの状態するが、作業ディレクトリの内容はそのまま残す。
→ 変更をステージングエリアから外し(未ステージ状態に戻し)、それらの変更を精査したり、異なる方法でコミットを構成したりできる。–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つ上のディレクトリに移動するなら
cd ..
- 移動先のディレクトリが同じ階層なら
- ls
-
現在参照しているディレクトリ(フォルダ)内のファイルやサブディレクトリをリスト表示する。
【q / :q!】
Gitとは直接関係ないが、覚えておくと便利なショートカットキー。(本記事では詳細は省きます。)
- q
-
git log
などを実行したときに表示される長いコミット履歴を閲覧していて、コマンドラインのプロンプトに戻りたいときは、q
キーを押すと閲覧モードを終了できる。 - :q!
-
git commit
をコミットメッセージなしで実行するなどすると、コマンドラインでエディタが開いてしまいコマンドが入力できなくなる。:q!
を入力すると、エディタを閉じてコマンド自体も取り消した状態でコマンドに戻ることができる。
【Next Step】ブランチ開発
本記事での基本操作に慣れたら「ブランチ開発」へ。
ブランチを使うことで、開発者はリスクを最小限に抑えつつ、新しいアイデアを自由に試すことができます。
以下記事では、ブランチ開発でよく使うコマンドを纏めましたので、次のステップとしてご覧ください!