Merges multiple branches that contain non-conflicting changes to a particular set of paths together.
git-merge-distinct [<options>] [<branch glob>] branch glob is an optional glob that specifies which branches to consider. Options: -n, --no-commit perform the merge but do not autocommit, to give the user a chance to inspect and further tweak the merge result before committing -m, --message <message> override the default commit message -i, --include <path glob> only branches with changes modifying paths matching this pattern will be included -x, --exclude <path glob> any branches with changes modifying paths matching this pattern will be excluded -h, --help output usage information -V, --version output the version number -d, --debug output debug information
Note that the command creates a new commit without updating the current ref, as the resultant commit is usually used
for staging a deployment and then thrown away. If you want to create or update a ref to point to the created ref, you
git branch or
git update-ref accordingly.
- Install Git, Node.js (tested against v0.10.35) and npm
npm install -g git-merge-distinct. You may need
Create a new commit by merging the branches starting with "blog/" with changes modifying only paths under "app/posts" into the current HEAD.
$ git merge-distinct -i 'app/posts/**' 'blog/**'
Merge all branches with changes modifying distinct paths into the current HEAD.
$ git merge-distinct
Merge all branches with changes modifying paths under
/static, ignoring those that modify
$ git merge-distinct -i 'static/**' -x '**/*.js' -x '**/*.coffee'