按文件名将单个提交拆分为多个提交,而无需手动浏览所有文件

时间:2017-12-08 09:17:31

标签: git git-rebase git-rewrite-history

我的提交已更改为100个文件。我想将该提交拆分为100个提交,其中一个提交由文件名。

目前我执行git rebase -i <startpoint>然后使用ereset HEAD^1标记我要编辑的提交,后跟一系列git add && git commit -m <filename>。多个文件会变得乏味。

最好在没有脚本的一行bash中。此外,它应该足够可读以便记忆。

更新:使用ElpieKay的解决方案结束

git reset HEAD^ --soft
git diff --cached --name-only --relative | while read f; do git commit -m "$f" -- "$f"; done

1 个答案:

答案 0 :(得分:1)

假设它是最后一次提交,提交ID为abc123

尝试

git reset abc123 --hard
git reset abc123^ --soft
git diff --cached --name-only | while read f;do git commit -m "$f" -- "$f";done

如果出现任何问题,请运行git reset abc123 --hard进行恢复。