首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Git中将多个提交合并为一个

在Git中将多个提交合并为一个
EN

Stack Overflow用户
提问于 2013-04-16 08:47:39
回答 1查看 300关注 0票数 3

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

代码语言:javascript
运行
复制
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合并到一个提交中,依此类推。我尝试使用rebase作为

代码语言:javascript
运行
复制
git reset --hard cdef
git rebase -i abcd

我无法压缩所有的提交,得到了folloving错误消息。

代码语言:javascript
运行
复制
"Cannot 'squash' without a previous commit"

我试图一次压缩一个提交,它起作用了,但它花费了太长的时间,显然是不可行的。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-16 09:05:31

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

代码语言:javascript
运行
复制
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这样的工具正常工作,存储库中的每个提交都应该代表一个“小范围”的更改。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16026970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档