有什么脚本能一键把 git clone 仓库里所有文件重设为它最后被修改的时间吗?

2022-04-14 16:24:31 +08:00
 LeeReamond

如题,windows 下 gitclone 出来的目录,里面所有文件的修改时间都是 clone 的时间,按修改时间排序的按钮失去功能了。

有什么 powershell 或者 bash 脚本可以根据 git 里记录的文件最后修改时间把文件的修改时间替换回来吗?

===================================

感觉网上应该有大佬实现过类似内容,不想重复发明轮子了。不过实在没有的话倒也可以用 python 自己实现,问题在于 git 怎么获取每个文件最后更改时间呢。。

762 次点击
所在节点    问与答
7 条回复
XiLingHost
2022-04-14 16:27:44 +08:00
git 并不记录文件的修改时间
ResponseBody
2022-04-14 16:28:21 +08:00
修改电脑时间再 clone 呗
mercury233
2022-04-14 16:33:23 +08:00
AoEiuV020CN
2022-04-14 16:36:42 +08:00
巧了,正好写过, 把文件修改时间重置为最后一个 commit 的时间,
不过我是 linux 环境的, 而且最终没解决 X 问题,所以没有正式使用,仅供参考吧,

https://github.com/AoEiuV020/owt-server-docker/blob/main/script/touch
LeeReamond
2022-04-14 16:45:39 +08:00
@AoEiuV020CN 感谢,试了试 gitlog-1 命令很好用。最终没解决 X 问题是啥意思

另外这个在 win 环境下使用 bash 不能运行是因为 unixtime 和 touchtime 这些不一样吗
AoEiuV020CN
2022-04-14 16:54:05 +08:00
@LeeReamond #5 X 问题是说“XY 问题”,我为了解决 X 问题,而提出了 Y 问题,然后这个脚本是用来解决 Y 问题的,最后发现 Y 问题无法解决 X 问题,于是这个脚本就废弃了,

脚本里平台有关的就一个 touch 命令,用来最终设置“文件修改时间”的,
你看看有 touch 命令应该就没问题, 没有的话就找别的代替就是了,
LeeReamond
2022-04-14 17:44:21 +08:00
@AoEiuV020CN 还是撸了 python 控制解决了,win 可能还有一些 powershell 相关的编码问题,还有 git 的编码问题,不太确定 git 输出的文件名是否能指向文件。

https://gist.github.com/GoodManWEN/f4c84cc3ba617697eade59733ab6c4ed

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/846965

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX