Нажатие пустой записи на удаленный

Я нажал одну фиксацию на удаленный, но теперь понял, что сообщение фиксации неверно. Я хотел бы изменить сообщение фиксации, но AFAIK это невозможно. Поэтому я решил создать пустую фиксацию с правильным сообщением:

git commit --allow-empty

Есть ли недостатки/последствия нажатия пустых коммитов? Есть ли какие-либо проблемы, с которыми я могу столкнуться в будущем из-за этой пустой фиксации?

Ответ 1

Вы не столкнетесь с какими-либо ужасными последствиями, просто история будет выглядеть немного запутанно.

Вы можете изменить сообщение коммита, выполнив

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

НО это переопределит удаленную историю с вашей, что означает, что если кто-то потянет этот репо за это время, этот человек будет очень зол на вас...

Просто сделайте это, если вы единственный человек, имеющий доступ к репо.

Ответ 2

Есть ли недостатки/последствия нажатия пустых коммитов?

Помимо чрезвычайной путаницы, кто-то может понять, почему там куча коммиттов без содержания в них на хозяине, на самом деле.

Вы можете изменить фиксацию, которую вы нажали на удаленный, но sha1 фиксации (в основном это номер идентификатора) будет постоянно изменяться, что изменяет исходное дерево. Тогда вам придется сделайте git push -f обратно на удаленный.

Ответ 3

push-commits, независимо от того, пуст или нет, приводит к срабатыванию конечных git крючков. Это не может ничего сделать или иметь мировые разрушительные последствия.

Ответ 4

Пока вы четко ссылаетесь на другую фиксацию из пустого коммита, это должно быть хорошо. Что-то вроде:

Commit message errata for [commit sha1]

[new commit message]

Как указывали другие, часто бывает предпочтительным принудительное нажатие исправленного фиксации.