How can I make a new commit
and create a new message if no changes are made to files?
Is this not possible since the commit's code (SHA ?) will be the same?
There's rarely a good reason to do this, but the parameter is --allow-empty
for empty commits (no files changed), in contrast to --allow-empty-message
for empty commit messages. You can also read more by typing git help commit
or visiting the online documentation.
While the tree object (which has a hash of its own) will be identical, the commit will actually have a different hash, because it will presumably have a different timestamp and message, and will definitely have a different parent commit. All three of those factors are integrated into git
's object hash algorithm.
There are a few reasons you might want an empty commit (incorporating some of the comments):
git
commands without generating arbitrary changes (via Vaelus).gitolite
(via Tatsh).Other strategies to add metadata to a commit tree include:
git notes
to associate a mutable note on top of an existing immutable commit.