Files
brchess/scripts/git-split.sh

34 lines
636 B
Bash
Executable File

#!/usr/bin/env bash
#
# Copy a git file, keeping history.
# Source: https://stackoverflow.com/a/53849613/3079831
if (( $# != 2 )) ; then
echo "Usage: git-split.sh original copy"
exit 1
fi
from="$1"
to="$2"
branch="split-file"
tmp="$from-temp-copy"
git switch -c "$branch"
git mv "$from" "$to"
git commit -n -m "Split $from to $to - step 1"
#REV=$(git rev-parse HEAD)
git switch -
git mv "$from" "$tmp"
git commit -n -m "Split $from to $to - step 2"
git merge "$branch"
git commit -a -n -m "Split $from to $to - step 3"
git mv "$tmp" "$from"
git commit -n -m "Split file $from to $to - step 4"
git branch -d "$branch"
exit 0