web-dev-qa-db-ja.com

コミットメッセージなしのGitコミット

コミットメッセージを指定せずに変更をコミットするにはどうすればよいですか?なぜデフォルトで必要なのですか?

95
Nik

意味のあるコミットメッセージを提供することは、優れた開発プラクティスとリポジトリ管理の一部であるため、gitでは通常、空でないメッセージが必要です。コミットメッセージの最初の行は、git内のあらゆる場所で使用されます。詳細については、 「Gitコミットメッセージに関する注意事項」 を参照してください。

Terminal.app、cdをプロジェクトディレクトリに、そしてgit commit -am ''を開くと、空のコミットメッセージが許可されていないため失敗することがわかります。 gitの新しいバージョンには
--allow-empty-messageコマンドライン引数。Xcodeの最新バージョンに含まれているgitのバージョンを含みます。これにより、このコマンドを使用して空のメッセージでコミットを行うことができます。

git commit -a --allow-empty-message -m ''

--allow-empty-messageフラグの前に、commit-tree plumbingコマンドを使用する必要がありました。 Git book「Raw Git」の章 でこのコマンドの使用例を見ることができます。

120

また、エイリアスを追加すると、さらに良いでしょうか?

git config --global alias.nccommit 'commit -a --allow-empty-message -m ""'

これで、コメントなしでnccommitを実行するだけで、すべてをコミットする必要があります。

24

重要なコードの更新に取り組んでいるときに、中間セーフポイントが本当に必要な場合は、次のようにします。

git commit -am'.'

以下:

git commit -am.
16
lackadaisical

注: git1.8.3.2を開始 (2013年7月)、次のコマンド( 上記Jeremy W Sherman )は開きませんもうエディター:

git commit --allow-empty-message -m ''

commit 25206778aac776fc6cc4887653fdae476c7a9b5a :を参照してください

Git commitのオプション-mで空のメッセージが指定されている場合、エディターが起動します。
それは予想外で不要です。
メッセージ文字列の長さを使用してユーザーが指定したかどうかを確認する代わりに、オプション-mが指定されたかどうかを直接覚えてください。


git 2.9(2016年6月)は、空のメッセージの動作を改善します。

commit 178e814 (2016年4月6日)by Adam Dinwoodie(me-and を参照してください。
commit 27014cb (2016年4月7日)by Jeff King(peff を参照してください。
C Hamano-gitster- in commit 0709261 、2016年4月22日)に合併)

commit-m ''で指定された空のメッセージを無視しません

  • git commit --amend -m '' --allow-empty-message」は奇妙に見えますが、メッセージをまったく持たないようにコミットを修正する有効なリクエストです。
    コマンドラインで-mの存在を誤検出したため、元のコミットからのログメッセージを保持することになりました。
  • git commit -m "$msg" -F file」は、$msgが空の文字列であるかどうかにかかわらず拒否する必要がありますが、$msgが空の場合、同じバグにより拒否されませんでした。
  • git -c template=file -m "$msg"」は、$msgが空の場合でもテンプレートを無視する必要がありますが、テンプレートファイルの内容を使用せず、代わりに使用しました。
12
VonC

これを実現するためにgitは必要ありません。 bash関数を創造的に使用すれば、うまくいくでしょう。メッセージを気にしない場合は、デフォルトのメッセージを設定して忘れてください。

function gitcom() {
  git commit -m "my default commit message"
}

本当に冒険好きなら、1つのコマンドで追加、コミット、プッシュできます

function gitzap() {
  git add . && git commit -m "whatevs" && git Push $1 $2
}

その後、次のように実行します

gitzap Origin master

さらに深くしてparse_git_branchを使用してキーストロークを保存したり、共通のデフォルトの「Origin」と「master」を設定することもできます。

2
Steven Garcia

Gitにはコメントを含めるためにコミットが必要です。そうでない場合、コミットを受け入れません。

既定のコミットメッセージとしてgitを使用して既定のテンプレートを構成するか、gitで--allow-empty-messageフラグを検索できます。空のコミットメッセージを受け入れるようにgitを再構成できるとは(100%確信はありませんが)(これはあまり良い考えではありません)。通常、各コミットは、メッセージに記述されている少しの作業である必要があります。

1
Daniel Kurka

私は最も簡単な解決策を見つけました:

git commit -am'save'

以上で、git commitメッセージなどを回避できます。

その賞賛をbashやその他のものに保存して、より簡単にすることもできます。

私たちのチームメンバーは常にそれらのメッセージを書きますが、ほとんど誰も再びそれらのメッセージを見ることはありません。

コミットメッセージは少なくともチームでは時間を浪費するものなので、無視します。

1
bronze man

私のプライベートプロジェクトには次の構成があります。

git config alias.auto 'commit -a -m "changes made from [device name]"'

そうすれば、急いでいるときは

git auto
git Push

そして、少なくとも、どのデバイスからコミットが行われたかを知っています。

0
e18r