我已经向远程推送了一个提交,但现在意识到提交消息不正确。我想更改提交消息,但据我所知这是不可能的。因此,我决定创建一个空提交,并使用正确的消息:
git commit --allow-empty
推送空提交是否存在任何缺点/后果?因为这个空提交,我将来会面临什么问题吗?
我已经向远程推送了一个提交,但现在意识到提交消息不正确。我想更改提交消息,但据我所知这是不可能的。因此,我决定创建一个空提交,并使用正确的消息:
git commit --allow-empty
推送空提交是否存在任何缺点/后果?因为这个空提交,我将来会面临什么问题吗?
一个空提交的用途是在一个环境中强制进行构建,其中每当推送新提交时都会触发构建。
git commit --allow-empty -m "Trigger Build"
-m
- 提交记录的信息。 - Vizionzgit reset
命令来清除索引。
请注意,git reset
命令不会更改你的工作目录中的内容,因此你不会丢失你的工作更改。 - SimonCgit commit --amend
git push --force-with-lease # (as opposed to --force, it doesn't overwrite others' work)
--force-with-lease
选项以避免丢失合作者的工作。 - Kenzoyours
总是会破坏良好的友谊。 - alansaldivar推送提交,无论是否为空,都会触发最终git hooks。这可能什么也不做,也可能产生举世震惊的后果。
推送空提交是否有任何缺点或后果?
除了可能会让主分支上出现一堆没有内容的提交,从而导致极度混乱外,实际上并没有什么缺点。
你可以更改已经推送到远程的提交,但是该提交的sha1(基本上是其ID号码)将永久更改,这会影响源树--你随后需要使用git push -f
强制推送回远程。
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历史经常令人困惑 :)
git commit --allow-empty-message -m ''