如何在远程Git Repo中设置文件时间戳?

如何在远程Git Repo中设置文件时间戳?,git,github,Git,Github,我想知道如何在我的repo中设置文件的时间戳。在git推送中,我希望我的文件的最后修改日期是过去,而不是上传时间 我可以很容易地手动设置提交日期,但这只意味着我在远程repo上有一天的提交,其中包含刚才修改过的文件 我知道在搜索类似主题时会遇到一些问题,但这是个人回购协议,我只想找出这个问题。git在推送时从何处提取文件修改数据?是否有任何脚本或扩展可以让我做我想做的事情? 为什么Git不保留文件的修改时间? 文件修改时间是影响生成工具的一项功能。 大多数构建工具将源的时间戳与派生文件的时间戳进

我想知道如何在我的repo中设置文件的时间戳。在git推送中,我希望我的文件的最后修改日期是过去,而不是上传时间

我可以很容易地手动设置提交日期,但这只意味着我在远程repo上有一天的提交,其中包含刚才修改过的文件

我知道在搜索类似主题时会遇到一些问题,但这是个人回购协议,我只想找出这个问题。git在推送时从何处提取文件修改数据?是否有任何脚本或扩展可以让我做我想做的事情?

为什么Git不保留文件的修改时间?

文件修改时间是影响生成工具的一项功能。
大多数构建工具将源的时间戳与派生文件的时间戳进行比较

如果源较新,则会进行重建,否则不会发生任何事情。这大大加快了构建过程。

现在考虑如果你检查另一个分支会发生什么,并且修改时间被保存。我们假设您已经有一个完整的构建项目

如果另一个分支上的源文件的时间戳早于相应派生文件的时间戳,则即使派生文件不同,也不会生成该派生文件,因为生成系统仅比较修改时间

充其量,你会得到某种奇怪的次要错误;但最有可能的是,一开始一切看起来都很好,但您不会得到与干净构建相同的结果。这种情况是不健康的,因为您确实不知道正在执行的代码是什么,而且很难找到问题的根源

在切换分支时,您将始终必须进行干净的构建,以确保使用正确的源。

(Git bisect是另一个Git过程,用于检查需要可靠重建的旧版本和新版本。)
Git将当前时间设置为它修改的每个文件的时间戳,但仅限于这些文件。其他文件保持不变,这意味着构建工具将能够依赖于修改时间并正确地重建。如果生成规则发生更改,无论如何都可能导致失败,但这是一个比意外不重建更不常见的问题


文件没有时间戳(git)。只有提交具有时间戳。这就是为什么所有其他问题要么放弃,要么添加一个辅助文件,其中包含“收到文件后,您可以在文件中设置时间戳”(辅助文件可能只是时间戳,或者是一个执行设置和戳值的程序)。顺便说一句,git在签出git时必须修改的文件上的日期就是您计算机上的当前日期,也就是说,git只是写入文件并让您的计算机将其标记为“now”.这里有一个脚本可能会满足您的需求:在git推送中,我希望我的文件的最后修改日期是在过去,而不是上传时间。Git不关心文件的时间戳..Git可能不关心,但很明显,当你推到GitHub时,它会将文件修改日期附加到推的时刻。无论是git功能还是GitHub提出的东西,这都是我的问题的一部分。我只是在寻找一种方法,将文件修改后的数据设置为当前时间以外的内容。