スナップショットを作成する
「git commit」コマンドは、スナップショットを作成するコマンドです。「git commit」コマンドは、現在「ステージングエリア」にあるファイル群から「スナップショット」を作成するため、編集されたファイルでも「ステージングエリア」にないファイルは「スナップショット」に反映されません。
「スナップショット」を作成するということは、各種「Gitオブジェクト」を作成するということになります。
コマンドのフォーマット
コマンドのフォーマットは以下のようになります。
git commit <オプション> <コミット対象のファイル名>
このコマンドの基本的な使い方は、以下を参考にしてください。
コミットに関するオプション
コミットに関するオプションです。いずれのオプションも省略できます。
ファイルを自動的にステージングエリアに追加してからコミットする(-a, --all)
コミットを実行する前に、「ワーキングディレクトリー」内の「トラックされているファイル」を「ステージングエリア」に追加してから、コミットを実行します。このオプションの使用例は、「ファイルを自動的にステージングエリアに追加してからコミットする」を参考にしてください。
空のコミットを許容する(--allow-empty)
ファイルが変更されていなくても、コミットを行えるようにします。このオプションの使用例は、「空のコミットを許容して、コミットを行う」を参考にしてください。
現在のコミットを新しいコミットで置き換える(--amend)
「ブランチヘッド」 が指す「コミットオブジェクト」を、新しい「コミットオブジェクト」で置き換えます。また、「ブランチヘッド」 が指す「コミットオブジェクト」のメタデータを書き換えることもできます。
メタデータとは、オーサーの情報や「コミットメッセージ」のことです。
このオプションの使用例は、以下を参考にしてください。
指定したファイルをステージングエリアに追加してからコミットする(-i, --include)
ユーザーが指定したファイルをステージングエリアに追加してからコミットします。このオプションの使用例は、「指定したファイルをステージングエリアに追加してからコミットする」を参考にしてください。
指定したファイルのみ、コミット対象にする(-o, --only)
指定したファイルのみ、コミット対象にします。このオプションの使用例は、「指定したファイルのみコミット対象にして、コミットする」を参考にしてください。
対話的に反映する差分を選択し、コミットする(-p, --patch)
対話的に反映する差分を選択し、コミットします。このオプションの使用例は、「対話的に反映する差分を選択し、コミットする」を参考にしてください。
オーサーに関するオプション
オーサーに関するオプションです。いずれのオプションも省略できます。
オーサーの情報にコミッターの情報を使用する(--reset-author)
「コミットメッセージ」を自動生成するオプションを指定した時や、チェリーピックのコンフリクト後にコミットした時は、オーサーの情報が処理対象の「コミットオブジェクト」のオーサーの情報になります。このオプションを指定すると、処理対象の「コミットオブジェクト」のオーサーの情報を使用せず、コミッターの情報をオーサーの情報に使用します。
このオプションの使用例は、「オーサーの情報にコミッターの情報を使用して、コミットを行う」を参考にしてください。
オーサーを指定する(--author)
オーサーを指定してコミットを行います。このオプションの使用例は、「オーサーを指定して、コミットを行う」を参考にしてください。
オーサーの時間を指定する(--date)
オーサーの時間を指定してコミットを行います。このオプションの使用例は、「オーサーの時間を指定して、コミットを行う」を参考にしてください。
コミットメッセージに関するオプション
「コミットメッセージ」に関するオプションです。いずれのオプションも省略できます。
指定したコミットオブジェクトのコミットメッセージを再利用する(-C, --reuse-message)
指定した「コミットオブジェクト」の「コミットメッセージ」を再利用します。コミッター以外の情報は、指定した「コミットオブジェクト」の情報が使用されます。
このオプションの使用例は、「指定したコミットオブジェクトのコミットメッセージを再利用して、コミットを実行する」を参考にしてください。
指定したコミットオブジェクトのコミットメッセージを編集して再利用する(-c, --reedit-message)
指定した「コミットオブジェクト」の「コミットメッセージ」を編集して再利用します。コミッター以外の情報は、指定した「コミットオブジェクト」の情報が使用されます。
コミット実行前に「コミットメッセージ」を編集することができます。
このオプションの使用例は、「指定したコミットオブジェクトのコミットメッセージを編集して再利用し、コミットを実行する」を参考にしてください。
ファイルからコミットメッセージを読み込む(-F, --file)
「コミットメッセージ」をファイルから読み込みます。標準入力から「コミットメッセージ」を読み込むこともできます。
このオプションの使用例は、以下を参考にしてください。
コミットメッセージを指定してコミットを行う(-m, --message)
「コミットメッセージ」を指定してコミットを行います。このオプションの使用例は、「コミットメッセージを指定して、コミットを行う」を参考にしてください。
コミットメッセージのテンプレートを指定する(-t, --template)
「コミットメッセージ」のテンプレートを指定してコミットを行います。このオプションの使用例は、「コミットメッセージのテンプレートを指定して、コミットを行う」を参考にしてください。
コミットメッセージにSigned-off-byを追加する(-s, --signoff)
「コミットメッセージ」の最後に、「Signed-off-by」を追加します。このオプションの使用例は、「コミットメッセージにSigned-off-byを追加して、コミットを行う」を参考にしてください。
空のコミットメッセージを許容する(--allow-empty-message)
空の「コミットメッセージ」を許容します。このオプションの使用例は、「空のコミットメッセージを許容して、コミットを行う」を参考にしてください。
コミットメッセージを整形する(--cleanup)
コミット時に、ユーザーが入力した「コミットメッセージ」を整形します。このオプションの使用例は、「コミットメッセージを整形して、コミットを行う」を参考にしてください。
コミットメッセージに、コミット対象のファイルの一覧を出力する(--status)
「コミットメッセージ」に、コミット対象のファイルの一覧を出力します。このオプションの使用例は、「コミットメッセージにコミット対象のファイルの一覧を出力する」を参考にしてください。
コミットメッセージに、コミット対象のファイルの一覧を表示しない(--no-status)
「コミットメッセージ」に、コミット対象のファイルの一覧を出力しない。このオプションの使用例は、「コミットメッセージにコミット対象のファイルの一覧を出力しない」を参考にしてください。
PGP署名に関するオプション
PGP署名に関するオプションです。いずれのオプションも省略できます。
コミットオブジェクトにPGP署名をつける(-S, --gpg-sign)
コミット実行時、「コミットオブジェクト」にPGP署名をつけます。このオプションの使用例は、「PGP署名付きでコミットを行う」を参考にしてください。
コミットオブジェクトにPGP署名をつけない(--no-gpg-sign)
コミット実行時、「コミットオブジェクト」にPGP署名をつけません。このオプションの使用例は、「PGP署名を付けずに、コミットを行う」を参考にしてください。
コミットメッセージの編集に関するオプション
コミットメッセージの編集に関するオプションです。いずれのオプションも省略できます。
コミットメッセージを編集する(-e, --edit)
コミットメッセージの編集画面を表示します。このオプションの使用例は、「コミットメッセージの編集画面を表示して、コミットを行う」を参考にしてください。
コミットメッセージを編集しない(--no-edit)
コミットメッセージの編集画面を表示します。このオプションの使用例は、「コミットメッセージの編集画面を表示せず、コミットを行う」を参考にしてください。
リベースの自動スカッシュ用のコミットメッセージに関するオプション
リベースの自動スカッシュ用のコミットメッセージに関するオプションです。いずれのオプションも省略できます。
リベースの自動スカッシュ(fixup)用のコミットメッセージを生成する(--fixup)
リベースの自動スカッシュ(fixup)用のコミットメッセージを生成します。このオプションの使用例は、「リベースの自動スカッシュ(fixup)用のコミットメッセージを生成して、コミットを行う」を参考にしてください。
リベースの自動スカッシュ(squash)用のコミットメッセージを生成する(--squash)
リベースの自動スカッシュ(squash)用のコミットメッセージを生成します。このオプションの使用例は、「リベースの自動スカッシュ(squash)用のコミットメッセージを生成して、コミットを行う」を参考にしてください。
コミットテストに関するオプション
コミットテストに関するオプションです。いずれのオプションも省略できます。
コミット対象になるファイルの一覧を表示する(--dry-run)
コミット実行時にコミット対象になるファイルの一覧を表示します。実際にコミットは行いません。
このオプションの使用例は、「コミット対象になるファイルの一覧を表示する」を参考にしてください。
コミット対象になるファイルの一覧をショートフォーマットで表示する(--short)
コミット実行時にコミット対象になるファイルの一覧を、ショートフォーマットで表示します。実際にコミットは行いません。
このオプションの使用例は、「コミット対象になるファイルの一覧を、ショートフォーマットで表示する」を参考にしてください。
コミット対象になるファイルの一覧をロングフォーマットで表示する(--long)
コミット実行時にコミット対象になるファイルの一覧を、ロングフォーマットで表示します。実際にコミットは行いません。
フォーマットに関するオプションを省略した場合、このオプションが指定されたものとして扱われます。
このオプションの使用例は、「コミット対象になるファイルの一覧を、ロングフォーマットで表示する」を参考にしてください。
コミット対象になるファイルの一覧をスクリプト向けフォーマットで表示する(--porcelain)
コミット実行時にコミット対象になるファイルの一覧を、スクリプト向けフォーマットで表示します。実際にコミットは行いません。
このオプションの使用例は、「コミット対象になるファイルの一覧を、スクリプト向けフォーマットで表示する」を参考にしてください。
コミット対象になるファイルの一覧をショートフォーマットで表示し、ブランチの情報も表示する(--branch)
コミット実行時にコミット対象になるファイルの一覧を、ショートフォーマットで表示し、ブランチの情報も表示します。実際にコミットは行いません。
このオプションの使用例は、「コミット対象になるファイルの一覧をショートフォーマットで表示し、現在のブランチの情報も表示する」を参考にしてください。
コミット対象になるファイルの一覧を改行コードの代わりにNULで出力する(-z, --null)
デフォルトでは、出力される情報は改行(LF)して表示されます。このオプションを指定すると、改行コードの代わりにNULで情報を出力します。
また、一部フォーマットが変更されます。
ショートフォーマットとスクリプト向けフォーマットでのみ使用できます。
シェルスクリプトなど、プログラムからファイルの状態を解析したい時に利用します。
このオプションの使用例は、「コミット対象になるファイルの一覧を、改行コードの代わりにNULで出力する」を参考にしてください。
フックに関するオプション
フックに関するオプションです。いずれのオプションも省略できます。
コミット実行時、pre-commitとcommit-msgフック処理を行わない(-n, --no-verify)
コミット実行時、「pre-commit」と「commit-msg」によるフック処理をスキップします。このオプションの使用例は、「コミット実行時、pre-commitとcommit-msgフック処理をスキップしてコミットを行う」を参考にしてください。
コミット実行時、post-rewriteフック処理を行わない(--no-post-rewrite)
コミット実行時、「post-rewrite」によるフック処理をスキップします。このオプションの使用例は、「コミット実行時、post-rewriteフック処理をスキップしてコミットを行う」を参考にしてください。
情報の出力に関するオプション
情報の出力に関するオプションです。いずれのオプションも省略できます。
トラックされていないファイルの表示を制御する(-u, --untracked-files)
トラックされていないファイルの表示を制御します。このオプションの使用例は、「トラックされていないファイルの表示を制御する」を参考にしてください。
ファイルの差分を表示する(-v, --verbose)
「HEAD」と「ステージングエリア」にあるファイルの差分を表示します。さらに、「ワーキングディレクトリー」にあるファイルとの差分も表示できます。
このオプションの使用例は、「HEADとステージングエリアにあるファイルの差分を表示する・HEADとステージングエリアにあるファイルとワーキングディレクトリーにあるの差分を表示する」を参考にしてください。
コミット完了時に出力されるコミット概要の出力を抑制する(-q, --quiet)
コミット完了時に出力されるコミット概要の出力を抑制します。このオプションの使用例は、「コミット完了時に出力されるコミット概要の出力を抑制する」を参考にしてください。
コミット対象のファイル名
コミット対象のファイル名を指定します。いずれのオプションも省略できます。
ステージングエリアに追加されているファイルはコミット対象にならない
「コミット対象のファイル名」を指定した場合、指定したファイルのみがコミット対象になります。「ステージングエリア」に追加されているファイルでも、 「コミット対象のファイル名」に指定されていないファイルはコミット対象になりません。
すなわち、「--only」オプションを指定した時と同じ動作になります。
トラックされていないファイルは対象外
「トラックされていないファイル」は対象外です。ファイル名に「トラックされていないファイル」を指定しても、「ステージングエリア」に追加されません。
複数のファイルを指定する時は、スペースで区切る
複数のファイルを指定する時は、スペースで区切って指定します。例えば、以下のような記述になります。
git commit master.txt sample.txt
ファイル名にスペースが含まれる時など、ファイル名が正しく認識されない時は
ファイル名にスペースが含まれる時など、ファイル名が正しく認識されない時は、各ファイル名を「'」でファイル名を括ってください。例えば、以下のような記述になります。
git commit 'm aster.txt' 'sam ple.txt'
オプションとファイル名の区別を明示するには
ファイル名によっては、オプションとして解釈されてしまう場合があります。オプションとファイルの区別を明示するには、オプションとファイルの間に「 -- 」を記述します。
例えば、以下のような記述になります。
git commit --include -- master.txt sample.txt
globパターンを利用したファイルの指定について
「コミット対象ファイル名」で指定するファイル名には、globパターンを利用した指定が可能です。*ワイルドカード
どの文字列にも対応するワイルドカードです。文字数は何文字でも良いです。
0文字でも良いです。
記述例
「*.txt」と記述すれば、拡張子が「txt」のファイルを対象にできます。?ワイルドカード
どの文字列にも対応するワイルドカードです。ただし「*」ワイルドカードと異なり、文字数は1文字です。
記述例
「?-doc.txt」と記述すれば、ファイル名の1文字目に任意の1文字を持つ「-doc.txt」のファイルを対象にできます。[]ワイルドカード
[]内に記述された文字に対応するワイルドカードです。ただし「*」ワイルドカードと異なり、文字数は1文字です。
「?」ワイルドカードの条件を細かく指定するワイルドカードです。
記述例1
「[abc].txt」と記述すれば、以下のいずれかのファイルを対象にできます。- a.txt
- b.txt
- c.txt
記述例2
「-」で文字の範囲を指定できます。「[a-c].txt」と記述すれば、以下のいずれかのファイルを対象にできます。
- a.txt
- b.txt
- c.txt