git snips
removing entire subdirectories from current branch (including history)
cd gitrepo
git filter-branch --index-filter 'git-ls-files DIR1 DIR2 DIR3 | xargs -d "\n" git-update-index --remove' HEAD
where DIR1, DIR2, DIR3 are subdirectory names
after that you'd likely to issue command:
rm -rf .git-rewrite .git/refs/original
hackish way of merging single subdirectory to different branch
git rm --cached DIR
git commit
git add DIR
git commit
after that you'll get a commit which contains only this one single subdirectory, and can use git cherry-pick
overwrite last commit and edit it's comment
git commit -a --amend