#!/usr/bin/env bash repo=$1 branch=$2 prefix=$3 flat=0 if test "$prefix" = "."; then prefix=$(mktemp -u 'git-merge-repo.XXXXXXX') flat=1 fi git subtree add -P "$prefix" "$repo" "$branch" "${@:4}" message=$(git log -1 --pretty=%B) if test $flat -eq 1; then git stash -u mv -i "$prefix"/* ./ git undo git add . git commit -am "$message" git stash apply rm -drf "$prefix" fi