2

我尝试使用以下命令生成补丁:

git 格式补丁 M7630AABBQMLZA40701060.. M7630AABBQMLZA40901040 -o 补丁/

它生成了大约 2004 个补丁。有趣的是,第一个补丁指向 2012 年 6 月 15 日的提交。但上述命令中使用的标签是 M7630AABBQMLZA40701060(标记日期为 OCT30 2012)和 M7630AABBQMLZA40901040(标记日期为 2013 年 4 月)

为什么此命令生成的补丁不在修订范围的时间戳中?此外,当我在快照 M7630AABBQMLZA40701060 上应用此补丁时,Git am 命令显示补丁失败并要求我们解决冲突。

有人可以在这里帮助我吗?

4

1 回答 1

4

由于变基,一系列提交可以包含比第一次提交更早的提交。

使用创建的一系列提交<rev1>..<rev2>定义为可从 <rev2> 访问的提交,但不包括可从 <rev1> 访问的提交。“可达”意味着可以使用每个提交嵌入的父引用导航提交。因此,严格来说,范围与日期无关。有关更多详细信息,请参阅 Git修订手册页

在 rebase 期间,提交中所做的更改用于创建这些提交的“副本”。这些“副本”将与原始提交具有相同的作者和日期。

假设有人在本地特性分支上开发了很长时间,然后将该特性分支重新设置在 master 上并推送。那么最早被重新定位的提交可能比它们被重新定位的提交具有更早的日期。

于 2013-07-01T06:47:48.390 回答