回答:
これを行う正当な理由はめったにありませんが、パラメーターは--allow-empty空のコミット(ファイルが変更されていない)--allow-empty-message用であり、空のコミットメッセージとは対照的です。入力するgit help commitか、オンラインドキュメントにアクセスして、詳細を読むこともできます。
ツリーオブジェクト(独自のハッシュを持つ)は同じですが、おそらく異なるタイムスタンプとメッセージがあり、確実に異なる親コミットがあるため、コミットは実際には異なるハッシュになります。これら3つの要素はすべて、gitのオブジェクトハッシュアルゴリズムに統合されています。
そこているあなたは(コメントの一部を取り入れた)コミット空の場合がありますいくつかの理由は:
git任意の変更を生成せずにコマンドをテストするには(Vaelusを使用)。gitolite(Tatshを介して)を使用して、削除されたベアリポジトリを再作成します。メタデータをコミットツリーに追加する他の方法には、次のものがあります。
commit --amend場合、リモートが強制プッシュを許可しないとできません。このようにして、開発者は前のコミットに伴う重要なメッセージを見ることができます。
gitversionのようなシステムを使用している場合、この種のコミットを行うことは非常に理にかなっています。+ semver:メジャーコメントを使用して、メジャーバージョンをバンプするためのコミットを行うことができます。
dev分岐形master、その後featからすぐに枝をdev、featから来て枝ルックスmasterまったく区別がないので枝が上コミットdev枝featの枝が来ます。devブランチを最初に作成したときの空のコミットは、ブランチとはdev独立して無期限に続くブランチであるため、ブランチを確立するのに役立ちますmaster。一般的には、コミットあなたがレイヤーとして枝を使用するときに便利だし、単一の二層を作成