git 将空提交推送到远程

iklwldmw  于 2023-05-12  发布在  Git
关注(0)|答案(7)|浏览(274)

我已经将一个提交推送到远程,但现在我意识到提交消息不正确。我想更改提交消息,但AFAIK这是不可能的。所以我决定用正确的消息创建空提交:

git commit --allow-empty

推送空提交有什么缺点/后果吗?我将来会因为这个空提交而面临什么问题吗??

ruoxqz4g

ruoxqz4g1#

空提交的一个用途是强制在每当推送新提交时都会触发构建的环境中进行构建。

git commit --allow-empty -m "Trigger Build"
balp4ylt

balp4ylt2#

你不会面临任何可怕的后果,只是历史看起来有点混乱。
您可以通过执行以下操作来修改提交消息

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

但是这会覆盖你的远程历史,这意味着如果有人在此期间拉了那个回购,这个人会对你非常生气。

如果你是唯一一个访问仓库的人,就这样做吧。

gjmwrych

gjmwrych3#

无论是否为空,推送提交都会导致最终的git hooks被触发。这可能什么也做不了,或者产生破坏世界的后果。

h7wcgrx3

h7wcgrx34#

推送空提交有什么缺点/后果吗?
除了极端的困惑之外,有些人可能会问为什么master上有一堆没有内容的提交,不是真的。
can更改了您推送到remote的提交,但是提交的sha1(基本上是id号)将永久更改,这会更改源树-然后您必须执行git push -f回到remote。

laik7k3q

laik7k3q5#

只要你清楚地引用了空提交中的另一个提交,就应该没问题。类似于:

Commit message errata for [commit sha1]

[new commit message]

正如其他人所指出的,这通常比强制推送更正的提交更可取。

2vuwiymt

2vuwiymt6#

至于令人困惑的历史,我有一个建议,最终使未来的考古学家的生活更容易。

git commit --allow-empty -m "message for commit DEADBEF was wrong. Correct Msg: ..."

其中,DEADBEF代表具有错误消息的提交的提交散列(SHA)。
或者,如果不可能/不允许空提交,则可以创建文档
commitcomments/$SHA.txt
添加/提交并推送它。
顺便说一句:无论如何,我忍不住要告诉你,git的历史经常是令人困惑的:)

cpjpxq1n

cpjpxq1n7#

这个怎么样

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

相关问题