diff options
Diffstat (limited to 'git-split')
| -rwxr-xr-x | git-split | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/git-split b/git-split new file mode 100755 index 0000000..6c3398f --- /dev/null +++ b/git-split @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# https://stackoverflow.com/questions/40698651/how-to-split-every-commit-by-file +# Split HEAD commit into multiples with single file in it. + +set -e + +SHA=$(git rev-parse --short HEAD) + +git reset HEAD^ + +git diff-tree --no-commit-id --name-only -r $SHA | while read -r f; do + git add "$f" + GIT_EDITOR="echo '0a\n$SHA $f\n\n.\nw' | ed -s" git commit -c $SHA +done |
