From: "Thomas Braun" Friday, January 20, 2017 11:35 PM
Am 20.01.2017 um 23:28 schrieb Philip Oakley:
A recent question on stackoverflow
http://stackoverflow.com/questions/41753252/drop-commits-by-commit-message-in-git-rebase
sought to remove automatically commits that could be identified by
relevant words in the commit message.
I had thought that the ubiquitous `git filter-branch` should be able to
do this sort of thing. I was wrong. (It was pointed out to me that...)
The man page notes that removing a commit via filter-branch does not
remove the changes from following commits and directs readers to using
`git rebase(1)`.
However the rebase command does not have any filter option to allow the
automatic population of its TODO list with the appropriate
pick/edit/drop/etc. values.
Well you can use an arbitrary shell command as editor, so something like
$ GIT_SEQUENCE_EDITOR="sed -i -re 's/^pick /edit /'" git rebase -i master
will change pick to edit of all commits.
Maybe that can be mentioned in the man page of rebase?
I had been more thinking of a process that passed single sha1's to the
filter on each pass through the rebase list, so that the coding was simpler,
plus the --interactive could be used, if required, for final refinement
(gitk being handy for that).
However, a mention in the man pages would be zero code cost, and could help.
--
Philip