git commitコマンドの使い方!-mオプションなど解説!

gitGit

この記事では、git commitコマンドに着目して、使い方やオプションなどを確認していきます。
git commitコマンドを使わなくても、SourceTreeやVSCodeなどのGUIツールを使うことで、簡単にコミットすることができます。

SSHで操作中のサーバーなどでは、gitコマンドを使うことになると思いますが、コマンド以外のGUIツールを使うことも検討してみてください。

この記事に載せているコマンドについては、gitの2.32.0バージョンで確認しました。

PR

git commitコマンドとは?

git commitコマンドを使うと、git addコマンドなどで、ステージエリアに上げているファイルをコミットすることができます。
ステージエリアに上げるファイルは、gitに記録したい新規ファイルや修正したファイルです。
ファイルをコミットすると、ローカルのリポジトリに履歴として記録されます。

git commitコマンドを使って、コミットした状態の場合は、まだ外部には公開されているわけではありません。
あくまでも、ローカルに記録されているだけの状態になります。
(※間違ってコミットした場合などは、外部共有する前に取り消すことが可能です)

git pushコマンドなどで、リポジトリに対してコミット履歴をプッシュすることで、初めて外部共有されます。

PR

git commitコマンドの使い方

実際にgit commitコマンドを使う場合には、ステージエリアにファイルを置いた状態で、下記のようにコマンドを実行します。
(※gitコマンドで、ステージエリアにファイルを置くには、git addコマンドを使います。)

$ git commit

そうするとエディタが開くので、コミットメッセージを入れて保存することで、コミットが完了します。
(基本的には、エディタにはシステムのデフォルトエディタが設定されているかと思います。)

1行目に、コミット履歴として残したいメッセージを入れます。
2行目以降の「#」の箇所は、コミットメッセージとしては無視されるので、1行目からコメントを書いたら保存してエディタを閉じます。
「Changes to be committed:」の箇所には、コミットされるファイルが並んでいます。

コミットコメントを入れる
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Your branch is up to date with 'origin/master'.
#
# Changes to be committed:
#       new file:   commitFile
#

エディタを閉じると、下記のようにファイルがコミットされました。

[master 38e1cb7] コミットコメントを入れる
 1 file changed, 2 insertions(+)
 create mode 100644 commitFile

git logコマンドを使うことで、正常にコミットされて、履歴に残ったか確認できます。
一番上に最新のコミットが表示されます。コミットされたことが確認できました。

$ git log
commit 38e1cb70815e05f1ce0871d1a15d3baed80e1754 (HEAD -> master)
Author: yasuaki <yasuaki@example.com>
Date:   Tue Jul 12 22:17:40 2022 +0900

    コミットコメントを入れる

commitの後についている、38e1cb70815e05f1ce0871d1a15d3baed80e1754はコミット識別番号です。
このコミット番号はコミットに対して、一意で設定されるユニークな番号になります。
gitコマンドで履歴を戻したり、ファイルを一部だけ取ってきたりするときに使うので、コミットには識別番号がついているということを覚えておきましょう。

ステージエリアにファイルがないとき

ステージエリアにファイルがないときにgit commitコマンドでコミットすると、下記のようにメッセージが出力されます。

$ git commit
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

「コミットするものがない」というメッセージが表示されました。
特にコミット履歴が変わることもありません。

コミットメッセージを、その場で付けてコミットする

いちいちエディタを開かずに、その場でメッセージを付けてコミットしたい場合には、-mオプションを使います。
-mオプションの後に、ダブルクォートでメッセージを囲んで、コマンドを実行します。

$ git commit -m "コミットメッセージ入力!"

そうすると、下記のようにコミットできたことが確認できました。

$ git commit -m "コミットメッセージ入力!"
[master 6a784d6] コミットメッセージ入力!
 1 file changed, 2 insertions(+)
 create mode 100644 commitFile

–amendオプションで、コミットメッセージを修正する

直前のコミットメッセージを修正したいときには、–amendオプションをつけることでコミットメッセージを修正することができます。
下記を実行します。

$ git commit --amend

そうすると、エディタが開いてコミットメッセージが表示されるので、変更して保存します。
今回は、下記のように末尾に「テストテスト!」を付けてみました。

コミットメッセージ入力!テストテスト!

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date:      Tue Jul 12 22:29:55 2022 +0900
#
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
# Changes to be committed:
#       new file:   commitFile

エディタを閉じると、下記のように保存されます。

[master 3bce758] コミットメッセージ入力!テスト!テスト!
 Date: Tue Jul 12 22:29:55 2022 +0900
 1 file changed, 2 insertions(+)
 create mode 100644 commitFile

--amendオプションに加えて、さらに-mオプションを使うと、その場でコミットメッセージを修正できます。

$ git commit --amend -m "コミットのテストです!"
[master 64db7a7] コミットのテストです!
 Date: Tue Jul 12 22:29:55 2022 +0900
 1 file changed, 2 insertions(+)
 create mode 100644 commitFile

–amendオプションで、直前のコミットにファイルを追加する

直前のコミットメッセージをそのままにして、コミット対象のファイルを増やすことも可能です。
「commitFile2」というファイルをgit addコマンドで、ステージエリアに追加します。

$ git add commitFile2

その後にgit commitコマンドに、--amendオプションと--no-editオプションを使うことで、直前のコミットにステージエリアのファイルを追加できます。

$ git commit --amend --no-edit
[master 2d3ec6a] コミットのテストです!
 Date: Tue Jul 12 22:29:55 2022 +0900
 2 files changed, 3 insertions(+)
 create mode 100644 commitFile2
 create mode 100644 commitFile

実行すると、コミットに対して、上記のようにファイルが追加されたことが確認できました。

git commitコマンドで使うエディタを変更したい

git commitコマンドで使うエディタを変更するには、git configコマンドでエディタを設定しておきます。
例えば、現在のプロジェクトのみにVSCodeを設定するには、下記を実行します。

$ git config core.editor "code --wait"

git管理プロジェクトの全体で使うエディタにする場合には、--globalオプションを使用して下記のように設定します。

$ git config --global core.editor "code --wait"

設定した内容を確認する場合には、下記のコマンドを使います。
設定があれば、現在の設定が返ってきます。

$ git config core.editor

コミットした内容を戻したい

コメント

タイトルとURLをコピーしました