Gitコマンドについて調べる【git commit】

git commit

git addにてステージング領域に追加されたファイルをローカルリポジトリにコミットするコマンドです。

$ git commit

git commitコマンドを実行すると、テキストエディタが表示されます。表示されたテキストエディタにはコミットメッセージを入力します。

  • 1行目 : コミットの全体的な説明
  • 2行目 : 空白行
  • 3行目以降 : コミットの詳細な説明

コミットメッセージの入力は必須なので、何も入力しないまま終了するとcommitはされません。2行目、3行目以降の入力は任意であるため、1行目の全体的な説明のみの入力でもOKです。

オプション

-m--message

テキストエディタを起動せず、コマンドで1行のコミットメッセージを入力してcommitすることができます。これはよく使用すると思います。

$ git commit -m '[コミットメッセージ]'
$ git commit --message '[コミットメッセージ]'

-a--all

-aをつけると、git addせずステージング領域に追加していないファイルをaddして、commitします。要するにaddしなくても-aをつけてcommitすれば自動でaddしてくれるものです。ただ、新規追加されgitの管理内になっていないものはaddされません。(git add -uと同じ)

$ git commit -a

-mと組み合わせるとgit add -ugit commitが1行のコマンドできて便利です。

# 変更したファイルをaddしてcommitする
$ git commit -a -m '[コミットメッセージ]'

--allow-empty

ファイルを何も変更せずaddしていない状態でもcommitのみ実行することができます。

$ git commit --allow-empty

何が便利かというと、これから何か機能を追加したり修正したりする際に仕様が曖昧なときなどに、とりあえず先にPullRequestを作ってそこで仕様について議論したりしながら開発を進めるということができます。

--amend

amendは「修正する、改める」という意味です。--amendをつけてcommitすると直前のコミットをやり直すことができます。

# 直前のコミットにREADMEの修正も含めたかったが忘れてしまっていた
$ vi README.md         # README.mdを修正
$ git add README.md    # README.mdをadd
$ git commit --amend   # --amendをつけてcommitすることで直前のコミットに含めることができる