我已经将一个提交推到远程,但现在我意识到提交消息是不正确的。我想更改提交消息,但AFAIK这是不可能的。所以我决定用正确的信息创建空提交:
git commit --allow-empty
推送空提交有什么缺点/后果吗?我将来会因为这个空洞的承诺而面临什么问题吗?
我已经将一个提交推到远程,但现在我意识到提交消息是不正确的。我想更改提交消息,但AFAIK这是不可能的。所以我决定用正确的信息创建空提交:
git commit --allow-empty
推送空提交有什么缺点/后果吗?我将来会因为这个空洞的承诺而面临什么问题吗?
推送空提交有什么缺点/后果吗?
除了极度困惑之外,有些人可能会对为什么在master上有一堆没有内容的提交感到困惑。
你可以改变你推送到远程的提交,但提交的sha1(基本上是id号)将永久改变,这改变了源树——然后你必须做一个git push -f回远程。
你不会面临任何可怕的后果,只是历史看起来有点混乱。
您可以通过以下操作更改提交消息
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]
正如其他人指出的那样,这通常比强制执行更正后的提交更可取。
至于让人困惑的历史,我有一个建议,最终会让未来的考古学家的生活更轻松。
git commit --allow-empty -m "message for commit DEADBEF was wrong. Correct Msg: ..."
其中DEADBEF代表提交错误消息的提交哈希值(SHA)。
或者如果不允许/不允许空提交,可以创建一个文档
commitcomments美元- SHA . txt。
添加/提交并推送。
顺便说一句:我忍不住要让git的历史经常令人困惑:)