#!/bin/bash # I work on a branch (named hut) which contains commits # that should not be part of the standard distribution. # # This script picks all the good commits from hut and # adds them to the master branch. # Bad commits are marked with a "custom:" at the beginning # of the commit message. MASTER_BRANCH='master' CUSTOM_BRANCH='hut' ORIGINAL_BRANCH=`git branch 2>/dev/null|grep -e ^* | tr -d \*\ ` git checkout -m $MASTER_BRANCH while read -r hash tag rest; do if [ $tag != 'custom:' ]; then git cherry-pick $hash || exit 1 fi done < <(git log --oneline --no-color $MASTER_BRANCH..$CUSTOM_BRANCH | tac) git checkout -m $CUSTOM_BRANCH git rebase $MASTER_BRANCH git checkout -m $ORIGINAL_BRANCH