threads / discuss / 6602

Modify/edit old commit messages

Subject: Modify/edit old commit messages

## tl;dr

5 messages between Feb 1, 2007 and Feb 1, 2007.

replies: 4people: 4as markdown or json

Rodolfo Giometti· Feb 1, 2007, 11:49 UTC · lore
Hello,
I'm puzzled... how can I modify or edit old commit messages? :)
Thanks in advance,
Rodolfo
-- 
GNU/Linux Solutions                  e-mail:    giometti@enneenne.com
Linux Device Driver                             giometti@gnudd.com
Embedded Systems                     		giometti@linux.it
UNIX programming                     phone:     +39 349 2432127
Johannes Schindelin· Feb 1, 2007, 12:28 UTC · re: Rodolfo Giometti · lore

Re: Modify/edit old commit messages

Hi,
On Thu, 1 Feb 2007, Rodolfo Giometti wrote:
> I'm puzzled... how can I modify or edit old commit messages? :)
Short answer: you can't.

Slightly longer answer: since the object name is calculated from data including the commit message, there is no way you can change it.

However, you can start from a certain commit in history, and _recommit_ a commit. There, you can edit the message and rebase the other commits on top of it. NOTE: the resulting commit is _not_ easily mergeable for people who track your branch.

Hth, Dscho

Linus Torvalds· Feb 1, 2007, 16:41 UTC · re: Johannes Schindelin · lore

Re: Modify/edit old commit messages

On Thu, 1 Feb 2007, Johannes Schindelin wrote:
Show 6 quoted lines
> 
> On Thu, 1 Feb 2007, Rodolfo Giometti wrote:
> > 
> > I'm puzzled... how can I modify or edit old commit messages? :)
> 
> Short answer: you can't.
Side note, just out of historical interest: in BK you could.

And if you're used to it (like I was) it was really quite practical. I would apply a patch-bomb from Andrew, notice something was wrong, and just edit it before pushing it out.

I could have done the same with git. It would have been easy enough to make just the commit message not be part of the name, and still guarantee that the history was untouched, and allow the "fix up comments later" thing.

But I didn't.

Part of it is purely "internal consistency". Git is simply a _cleaner_ system thanks to everything being SHA1-protected, and all objects being treated the same, regardless of object type. Yeah, there are four different kinds of objects, and they are all really different, and they can't be used in the same way, but at the same time, even if their encoding might be different on disk, *conceptually* they all work exactly the same.

But internal consistency isn't really an excuse for being inflexible, and clearly it would be very flexible if we could just fix up mistakes after they happen. So that's not a really strong argument.

The *real* reason git doesn't allow you to change the commit message ends up being very simple: that way, you can trust the messages. If you allowed people to change them afterwards, the messages are inherently not very trustworthy.

In BK, for example, if you edited the commit message after already pushing it out, it would *work*, but the stuff you pushed out would obviously not be changed, so different repositories would literally have different commit messages. I did it anyway a few times when some really irritating typo just made me say "I can't stand reading that typo over and over again, I'll fix it in my tree and screw everybody else".

But it's also very important because nobody *else* can mess with your history without it being obvious to everybody who has ever seen the pristine one, and nobody can change what you said later. Yeah, there's a few embarrassing typo's in the kernel history. We'll never be able to live down the fact that spelling and grammar is the dificultest for us. And we have some bugs where people have corrupt email addresses etc.

And I'll take guaranteed history over typos any day. 
			Linus
Johannes Schindelin· Feb 1, 2007, 17:17 UTC · re: Johannes Schindelin · lore

Re: Modify/edit old commit messages

Hi,
On Thu, 1 Feb 2007, Johannes Schindelin wrote:
Show 5 quoted lines
> On Thu, 1 Feb 2007, Rodolfo Giometti wrote:
> 
> > I'm puzzled... how can I modify or edit old commit messages? :)
> 
> Short answer: you can't.
Amendment:

You can easily, but only the latest commit, with "git commit --amend". Be warned though, the same as with rebase applies here: if you pushed this commit somewhere else, or if users fetched that branch from you (including the not-yet-edited commit), they _will_ have problems fetching and/or merging.

Ciao, Dscho

Jakub Narebski· Feb 1, 2007, 23:24 UTC · re: Rodolfo Giometti · lore

Re: Modify/edit old commit messages

[Cc: git@vger.kernel.org]
Rodolfo Giometti wrote:
> Hello,
> 
> I'm puzzled... how can I modify or edit old commit messages? :)
http://git.or.cz/gitwiki/GitTips
-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git

← back to recent threads