Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

git filter-branch --msg-filter to reword a pushed commit message

How can I reword the message of an old commit that is already pushed to a private remote? I want to keep the time stamps and tags.

I found this command here:

git filter-branch -f --msg-filter \
'sed "s/<old message>/<new message>/g"' -- --all

In order to keep the tags i added: --tag-name-filter cat

When executing the command git tells me: msg filter failed

The message I want to change is a merged-message "Merge branch 'release/...'" is this the problem?

like image 839
Tenjix Avatar asked Oct 28 '13 13:10

Tenjix


People also ask

Does git filter branch rewrite history?

Lets you rewrite Git revision history by rewriting the branches mentioned in the <rev-list options>, applying custom filters on each revision. Those filters can modify each tree (e.g. removing a file or running a perl rewrite on all files) or information about each commit.

How do I edit a previous commit?

The git commit --amend command is a convenient way to modify the most recent commit. It lets you combine staged changes with the previous commit instead of creating an entirely new commit. It can also be used to simply edit the previous commit message without changing its snapshot.

What does git filter branch do?

filter-branch is generally for operations you want to apply pervasively to a repository. If you just want to tweak a few commits, it won't work, since future commits will appear to undo your changes. git rebase is for when you want to tweak a few commits.


1 Answers

The solution was to escape the slash in "release/..." using a backslash. So the command I used was:

git filter-branch -f --msg-filter \
'sed "s/release\/Version-[0-9].[0-9].[0-9]/develop/g"' \
--tag-name-filter cat -- --all
like image 138
Tenjix Avatar answered Oct 12 '22 00:10

Tenjix