回答:
これを行う正当な理由はめったにありませんが、パラメーターは--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
。一般的には、コミットあなたがレイヤーとして枝を使用するときに便利だし、単一の二層を作成