summaryrefslogtreecommitdiff
path: root/git-split
diff options
context:
space:
mode:
authorAnton Bobov <abobov@gmail.com>2020-02-19 22:57:02 +0500
committerAnton Bobov <abobov@gmail.com>2020-02-19 22:57:02 +0500
commitd34161bbda6781a617705ee429776e53768c7b51 (patch)
tree0336b1562c4e8791b5e9b7cadabdb5d3035dce65 /git-split
parentd5c22685624a4c4e4ac039a5c23782245f95385b (diff)
Updates.
Diffstat (limited to 'git-split')
-rwxr-xr-xgit-split14
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