我已经将一个提交推到远程,但现在我意识到提交消息是不正确的。我想更改提交消息,但AFAIK这是不可能的。所以我决定用正确的信息创建空提交:
git commit --allow-empty
推送空提交有什么缺点/后果吗?我将来会因为这个空洞的承诺而面临什么问题吗?
我已经将一个提交推到远程,但现在我意识到提交消息是不正确的。我想更改提交消息,但AFAIK这是不可能的。所以我决定用正确的信息创建空提交:
git commit --allow-empty
推送空提交有什么缺点/后果吗?我将来会因为这个空洞的承诺而面临什么问题吗?
当前回答
推送提交,无论是否为空,都会触发最终的git钩子。这样做要么什么也做不了,要么会造成翻天覆地的后果。
其他回答
只要您清楚地从空提交引用了另一个提交,就应该没问题。喜欢的东西:
Commit message errata for [commit sha1]
[new commit message]
正如其他人指出的那样,这通常比强制执行更正后的提交更可取。
空提交的一种用法是强制在每当推送新提交时都会触发构建的环境中发生构建。
git commit --allow-empty -m "Trigger Build"
你不会面临任何可怕的后果,只是历史看起来有点混乱。
您可以通过以下操作更改提交消息
git commit --amend
git push --force-with-lease # (as opposed to --force, it doesn't overwrite others' work)
但这将覆盖你的远程历史,这意味着如果有人在此期间进行了回购,这个人会对你非常生气……
如果你是唯一访问回购的人,就这么做。
至于让人困惑的历史,我有一个建议,最终会让未来的考古学家的生活更轻松。
git commit --allow-empty -m "message for commit DEADBEF was wrong. Correct Msg: ..."
其中DEADBEF代表提交错误消息的提交哈希值(SHA)。
或者如果不允许/不允许空提交,可以创建一个文档
commitcomments美元- SHA . txt。
添加/提交并推送。
顺便说一句:我忍不住要让git的历史经常令人困惑:)
这个呢?
git commit --allow-empty-message -m ''