commit
ファイルに変更が加えられていない場合、どうすれば新しいメッセージを作成して新しいメッセージを作成できますか?
コミットのコード(SHA?)は同じになるので、これは不可能ですか?
これを行う正当な理由はめったにありませんが、パラメーターは、空のコミットメッセージの場合--allow-empty
とは対照的に、空のコミット(ファイルは変更されません)用です。オンラインドキュメントを入力またはアクセスして、--allow-empty-message
詳細を読むこともできます。git help commit
ツリーオブジェクト(独自のハッシュを持つ)は同一ですが、コミットには実際には異なるハッシュがあります。これは、おそらくタイムスタンプとメッセージが異なり、親のコミットも確実に異なるためです。git
これらの3つの要素はすべて、のオブジェクトハッシュアルゴリズムに統合されています。
空のコミットが必要になる理由はいくつかあります(コメントの一部を組み込んでいます)。
git
任意の変更を生成せずにコマンドをテストする( Vaelusを介して)。gitolite
経由)を使用して、削除されたベアリポジトリを再作成します。コミットツリーにメタデータを追加する他の戦略は次のとおりです。
git notes
既存の不変コミットの上に可変ノートを関連付ける。メッセージ付きの空のコミット
git commit --allow-empty -m "Empty test commit"
空のメッセージで空のコミット
git commit --allow-empty --allow-empty-message
私があなたの言うことを正しく理解していれば、あなたは空のコミットをしたいと思うでしょう。その場合、次のものが必要です。
git commit --allow-empty
おそらく、より賢明な代替手段として、注釈付きタグ(メッセージ付きの名前付きコミット)を作成することができます。git tag -a
オプションを参照してください。
gitversionのようなシステムを使用している場合この種のコミットを行うことは非常に理にかなっています。+ semver:majorcommentを使用してメジャーバージョンをバンプするためのコミットを作成できます。