我已经将一个提交推到远程,但现在我意识到提交消息是不正确的。我想更改提交消息,但AFAIK这是不可能的。所以我决定用正确的信息创建空提交:
git commit --allow-empty
推送空提交有什么缺点/后果吗?我将来会因为这个空洞的承诺而面临什么问题吗?
我已经将一个提交推到远程,但现在我意识到提交消息是不正确的。我想更改提交消息,但AFAIK这是不可能的。所以我决定用正确的信息创建空提交:
git commit --allow-empty
推送空提交有什么缺点/后果吗?我将来会因为这个空洞的承诺而面临什么问题吗?
当前回答
推送空提交有什么缺点/后果吗?
除了极度困惑之外,有些人可能会对为什么在master上有一堆没有内容的提交感到困惑。
你可以改变你推送到远程的提交,但提交的sha1(基本上是id号)将永久改变,这改变了源树——然后你必须做一个git push -f回远程。
其他回答
推送空提交有什么缺点/后果吗?
除了极度困惑之外,有些人可能会对为什么在master上有一堆没有内容的提交感到困惑。
你可以改变你推送到远程的提交,但提交的sha1(基本上是id号)将永久改变,这改变了源树——然后你必须做一个git push -f回远程。
这个呢?
git commit --allow-empty-message -m ''
推送提交,无论是否为空,都会触发最终的git钩子。这样做要么什么也做不了,要么会造成翻天覆地的后果。
你不会面临任何可怕的后果,只是历史看起来有点混乱。
您可以通过以下操作更改提交消息
git commit --amend
git push --force-with-lease # (as opposed to --force, it doesn't overwrite others' work)
但这将覆盖你的远程历史,这意味着如果有人在此期间进行了回购,这个人会对你非常生气……
如果你是唯一访问回购的人,就这么做。
只要您清楚地从空提交引用了另一个提交,就应该没问题。喜欢的东西:
Commit message errata for [commit sha1]
[new commit message]
正如其他人指出的那样,这通常比强制执行更正后的提交更可取。