我试图弄清楚如何设置文件'我的回购中的时间戳。在git push上我想要我的文件'最后修改日期是过去而不是上传时间。
我可以轻松地手动设置提交日期,但这只是意味着我的远程仓库上有一天的提交,其中包含刚刚修改过的文件。
我知道搜索类似主题存在问题,但这是一个个人回购,我只想想出这个。 git在哪里从推送中提取文件修改数据?是否有任何脚本或扩展程序可以让我按照自己的意愿行事?
答案 0 :(得分:0)
为什么Git不保留文件的修改时间?
文件修改时间是影响构建工具的功能 大多数构建工具将源的时间戳与派生文件的时间戳进行比较。
如果源更新,则会进行重建,否则不会发生任何事情。这大大加快了构建过程。
现在考虑如果你检查另一个分支会发生什么,并保留修改时间。我们假设您已经拥有一个完整的项目。
如果该另一个分支上的源文件的时间戳早于相应派生文件的时间戳,则即使源文件不同,也不会构建派生文件,因为构建系统仅比较修改时间。
充其量,你会得到某种奇怪的二次错误;但是很可能一开始看起来都很好,但是你得到的结果与干净的版本不一样。这种情况是不健康的,因为你真的不知道你正在执行什么代码,并且很难找到问题的根源。
在切换分支时,最终总是必须进行干净的构建,以确保使用正确的源。
(Git bisect是另一个Git程序,用于检查需要可靠重建的旧版本和新版本。)
Git将当前时间设置为它修改的每个文件的时间戳,但仅限于那些。其他文件保持不变,这意味着构建工具将能够依赖于修改时间并正确重建。如果构建规则发生变化,那么无论如何都会导致失败,但这是一个不太常见的问题而不是意外不重建。