Search code examples
gitmessagecommitgit-filter-branchrevision-history

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?


Solution

  • 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