空のコミットをリモートにプッシュする


241

1つのコミットをリモートにプッシュしましたが、コミットメッセージが正しくないことに気付きました。コミットメッセージを変更したいのですが、私の知る限り不可能です。だから私は正しいメッセージで空のコミットを作成することを決めました:

git commit --allow-empty

空のコミットをプッシュすることのデメリット/結果はありますか?この空のコミットのために将来直面する可能性のある問題はありますか?


1
この類似した質問をチェックstackoverflow.com/questions/6218199/...
とMontaro

回答:


80

ひどい結果に直面することはありません。歴史が混乱するように見えるだけです。

コミットメッセージを変更することができます

git commit --amend
git push --force-with-lease # (as opposed to --force, it doesn't overwrite others' work)

しかし、これはあなたのリモート履歴を上書きします。つまり、その間に誰かがそのレポを引っ張った場合、この人はあなたに非常に腹を立てることになります...

あなたがリポジトリにアクセスする唯一の人であるならば、それをしてください。


5
はい、そういうわけで私は空のコミットをプッシュすることを好んだ
mrutyunjay 2013年

4
@mrutyunjay他の人がリポジトリをプルする可能性がある場合は、はい、それはより良いオプションだと思います。
ガブリエレペトロネラ2013年

1
あなたはひどい結果に直面することはありません、歴史だけがちょっと混乱するように見えるでしょう -なんとひどい結果でしょう!;-)
アロア・マダル16

3
--force-with-lease共同作業者の作業が失われないようにすることをお勧めします。
ケンゾー

22

空であるかどうかに関係なく、コミットをプッシュすると、最終的にgitフックがトリガーされます。これは何もしないか、世界を破壊する結果をもたらす可能性があります。


9
これは過小評価された観察です。はい、空のコミットはプッシュされたコミットの修正よりも優れている可能性がありますが、フックが存在する可能性がある場合、副作用がないとは想定できません。
wintermute92

18

空のコミットをプッシュすることの欠点/結果はありますか?

極端な混乱は別として、マスターではなく、コンテンツが含まれていないコミットがたくさんある理由について誰かが理解するかもしれません。

リモートにプッシュしたコミットを変更できます、コミットのsha1(基本的にはID番号)は永続的に変更され、ソースツリーが変更されます。その後git push -f、リモートに戻る必要があります。


15

空のコミットから他のコミットを明確に参照している限り、問題ありません。何かのようなもの:

Commit message errata for [commit sha1]

[new commit message]

他の人が指摘したように、これは多くの場合、修正されたコミットを強制的にプッシュするよりも望ましい方法です。


10
 $ git commit --allow-empty -m "Trigger Build"

2
このコードは問題を解決する可能性がありますが、これが問題を解決する方法と理由の説明含めると、投稿の品質が向上し、おそらく投票数が増えることになります。あなたが今尋ねている人だけでなく、あなたが将来の読者のための質問に答えていることを忘れないでください。回答を編集して説明を追加し、適用される制限と前提を示してください。口コミから
ダブルビープ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.