承诺时间在未来的后果



我不小心犯了&当我的设备日期时间设置为未来几天(即日期设置为23日而不是21日(时,推送了对遥控器的更改。

我已经提到了这将解决我的问题,但由于用力推,建议不要执行。

所以我的问题是,保留错误的提交日期和时间会对Git回购(本地和远程(产生不利影响吗。我使用";Git实验室;作为我的远程存储库提供商。

所以我的问题是是否会保留错误的提交日期和时间对Git回购(本地和远程(产生不利影响。我使用";Git实验室;作为我的远程存储库提供商。

答案是:"这取决于";。从git的角度来看,它不是:日期被记录为元数据,提交顺序是基于父/子关系提供的。请看这个答案以便进一步研究。

但是,如果您使用CI脚本或非常关心存储库的实际历史,那么从广义上讲,记录错误的元数据是不好的。它是可以修复的。

附带说明一下,您可能会使用元数据做很多事情,例如但不限于在过去创建提交。

提交

Git提交对象的最终创建通常由Git提交树完成,该树使用这些环境变量作为其主要信息源,回退到配置值只有在这些不存在的情况下。

GIT_AUTHOR_NAME是"作者"字段中的可读名称。

GIT_AUTHOR_EMAIL是"作者"字段的电子邮件。

GIT_AUTHOR_DATE是用于"author"字段的时间戳。

GIT_COMMITTER_NAME为"committer"字段设置人名。

GIT_COMMITTER_EMAIL是"提交者"字段的电子邮件地址。

GIT_COMMITTER_DATE用于"committer"中的时间戳领域

EMAIL是在user.email未设置配置值。如果未设置此项,Git将回退到系统用户名和主机名。源

这是理解git内部的另一个非常好的参考:

让我们考虑一下这些对象的哈希。比方说我编写了字符串git is awesome!并从中创建了一个blob在您的系统中也是如此。我们要同样的杂碎吗?

答案是—对由于Blob由相同的数据组成具有相同的SHA-1值。

如果我制作了一个引用git is awesome!的blob的树,并且给它一个特定的名称和元数据,而你在您的系统。我们要同样的杂碎吗?

再说一遍,是的。由于树对象是相同的,它们将具有相同的散列。

如果我用提交消息CCD_ 11创建了该树的提交,你在你的系统上也做了同样的事情。我们要同样的杂碎吗?

在这种情况下,答案是—不。尽管我们的提交对象引用对于同一棵树,它们有不同的提交详细信息—时间,提交人等源

,但由于力推,建议不要执行。

任何重定基础都需要强制推送才能发布重定基础的分支。

但这只是一个问题,因为这是在一个有多个合作者的公共分支上完成的

如果是你自己的工作/主题分支,你可以根据自己的意愿多次重新建立基础/强制推送
这实际上是在pull请求之前完成的,以确保维护人员能够轻松合并(或者维护人员可以自己触发rebase(。

最新更新