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

时间:2016-03-29 16:28:38

标签: git github

我试图弄清楚如何设置文件'我的回购中的时间戳。在git push上我想要我的文件'最后修改日期是过去而不是上传时间。

我可以轻松地手动设置提交日期,但这只是意味着我的远程仓库上有一天的提交,其中包含刚刚修改过的文件。

我知道搜索类似主题存在问题,但这是一个个人回购,我只想想出这个。 git在哪里从推送中提取文件修改数据?是否有任何脚本或扩展程序可以让我按照自己的意愿行事?

1 个答案:

答案 0 :(得分:0)

https://git.wiki.kernel.org/index.php/Git_FAQ#Why_isn.27t_Git_preserving_modification_time_on_files.3F

  

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

     

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

     

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

     

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

     

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

     

充其量,你会得到某种奇怪的二次错误;但是很可能一开始看起来都很好,但是你得到的结果与干净的版本不一样。这种情况是不健康的,因为你真的不知道你正在执行什么代码,并且很难找到问题的根源。

     

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

     

(Git bisect是另一个Git程序,用于检查需要可靠重建的旧版本和新版本。)

  Git将当前时间设置为它修改的每个文件的时间戳,但仅限于那些。其他文件保持不变,这意味着构建工具将能够依赖于修改时间并正确重建。如果构建规则发生变化,那么无论如何都会导致失败,但这是一个不太常见的问题而不是意外不重建。