![`git archive` 使用了错误的文件时间戳吗?](https://linux22.com/image/58402/%60git%20archive%60%20%E4%BD%BF%E7%94%A8%E4%BA%86%E9%94%99%E8%AF%AF%E7%9A%84%E6%96%87%E4%BB%B6%E6%97%B6%E9%97%B4%E6%88%B3%E5%90%97%EF%BC%9F.png)
它似乎git archive
创建了一个带有错误文件修改时间戳的 tarball,导致tar
解压时出现抱怨:
$ cd repository
$ git archive -o repository.tar.gz master .
$ find /target/dir -type f -delete
$ tar -C /target/dir -xvf repository.tar.gz
some/file.txt
tar: some/file.txt: time stamp 2014-10-29 13:09:52 is 49.814349986 s in the future
another/file.txt
tar: another/file.txt: time stamp 2014-10-29 13:09:52 is 49.813794938 s in the future
这一切都发生在几秒钟之内在一台机器上。
答案1
当您向 提供提交 ID 或标记 ID(或分支名称,如您在此处所做的那样)时git archive
,引用的提交对象中记录的提交时间将用作存档中每个文件的修改时间。
看起来最新的提交master
是 at 2014-10-29 13:09:52
,相对于您运行时的那一刻来说,这一定是未来的事情git archive
。也许该提交是从时钟不正确的远程存储库获取的,或者本地时钟不正确?