git - Squash all commits with commit messages that match a certain pattern -


is there way squash git commits commit messages match pattern?

ideally non-interactive - automatic @ command line.

git rebase -i creates todo file , calls editor; it's supposed user edits file , git interprets it. file in well-known format. instead of interactive editor create shell script edits file non-interactively; use sed -i edit in place; use s/// search command find pick commands $pattern , replace them squash commands.

file squash.sh; put pattern (basic regular expression style) there:

#! /bin/sh exec sed -i 's/^pick \([^ ]\+\) $pattern.\+$/squash \1/' $1 

command line:

chmod +x squash.sh git_editor=./squash.sh git rebase --interactive $commit_id 

Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -