我不小心犯了&当我的设备日期时间设置为未来几天(即日期设置为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"中的时间戳领域
user.email
未设置配置值。如果未设置此项,Git将回退到系统用户名和主机名。源
这是理解git内部的另一个非常好的参考:
让我们考虑一下这些对象的哈希。比方说我编写了字符串
git is awesome!
并从中创建了一个blob在您的系统中也是如此。我们要同样的杂碎吗?答案是—对由于Blob由相同的数据组成具有相同的SHA-1值。
如果我制作了一个引用
git is awesome!
的blob的树,并且给它一个特定的名称和元数据,而你在您的系统。我们要同样的杂碎吗?再说一遍,是的。由于树对象是相同的,它们将具有相同的散列。
如果我用提交消息CCD_ 11创建了该树的提交,你在你的系统上也做了同样的事情。我们要同样的杂碎吗?
在这种情况下,答案是—不。尽管我们的提交对象引用对于同一棵树,它们有不同的提交详细信息—时间,提交人等源
,但由于力推,建议不要执行。
任何重定基础都需要强制推送才能发布重定基础的分支。
但这只是一个问题,因为这是在一个有多个合作者的公共分支上完成的
如果是你自己的工作/主题分支,你可以根据自己的意愿多次重新建立基础/强制推送
这实际上是在pull请求之前完成的,以确保维护人员能够轻松合并(或者维护人员可以自己触发rebase(。