tj.git-extras/bin/git-merge-repo
2023-01-20 18:17:49 +08:00

26 lines
386 B
Bash
Executable file

#!/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