【发布时间】:2017-12-08 09:17:31
【问题描述】:
我有一个对 100 个文件进行更改的提交。我想将该提交拆分为 100 个提交,其中一个按文件名提交。
目前我做git rebase -i <startpoint> 然后用e 和reset 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
【问题讨论】:
-
给定文件名,提交一次的规则是什么?每个文件一次提交?
-
是的,每个文件一次提交。
-
提交信息怎么样?都是一样的吗?
-
文件名作为提交信息。这个想法是这些中间提交将与
git rebase -i组合成更干净的逻辑实体。 -
还有一个问题,这个提交是当前分支的最后一个吗?
标签: git git-rebase git-rewrite-history