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?
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.
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.
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.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With