3

我有一个单独的分支 git 存储库,有 ~4000 次提交。我想根据提交的创建日期对提交进行分组。例如,给定以下提交:

abcd 2013-4-1 12:10
abce 2013-4-1 13:27
...
cdef 2013-4-1 18:16
cdeg 2013-4-2 09:23
...
gade 2013-4-2 18:20
fdeg 2013-4-3 09:42
... 

我想获得一个提交历史,例如所有abcd-cdef提交合并为一个提交,所有 cdeg-gade 合并为一个,依此类推。我尝试使用变基作为

git reset --hard cdef
git rebase -i abcd

我无法压缩所有提交,收到以下错误消息。

"Cannot 'squash' without a previous commit"

我试图一次压缩一个提交,它奏效了,但花了很长时间,显然不可行。

如何根据提交的创建日期合并提交?

4

1 回答 1

5

将每天的第一次提交标记为“reword”,其余的标记为“fixup”:

reword xxxxxx First commit from 2013-04-01
squash xxxxxx another commit from 2013-04-01
squash xxxxxx another commit from 2013-04-01
reword xxxxxx First commit from 2013-04-02
etc

这将提示您每天编写一条新的提交消息。

请注意,按时间进行提交几乎总是错误的做法。对于喜欢git bisect正常工作的工具,存储库中的每个提交都应该代表“一口大小”的更改。

于 2013-04-16T01:05:30.550 回答