如题,windows 下 gitclone 出来的目录,里面所有文件的修改时间都是 clone 的时间,按修改时间排序的按钮失去功能了。
有什么 powershell 或者 bash 脚本可以根据 git 里记录的文件最后修改时间把文件的修改时间替换回来吗?
===================================
感觉网上应该有大佬实现过类似内容,不想重复发明轮子了。不过实在没有的话倒也可以用 python 自己实现,问题在于 git 怎么获取每个文件最后更改时间呢。。
1
XiLingHost 2022-04-14 16:27:44 +08:00
git 并不记录文件的修改时间
|
2
ResponseBody 2022-04-14 16:28:21 +08:00 via iPhone
修改电脑时间再 clone 呗
|
3
mercury233 2022-04-14 16:33:23 +08:00 1
|
4
AoEiuV020CN 2022-04-14 16:36:42 +08:00
巧了,正好写过, 把文件修改时间重置为最后一个 commit 的时间,
不过我是 linux 环境的, 而且最终没解决 X 问题,所以没有正式使用,仅供参考吧, https://github.com/AoEiuV020/owt-server-docker/blob/main/script/touch |
5
LeeReamond OP @AoEiuV020CN 感谢,试了试 gitlog-1 命令很好用。最终没解决 X 问题是啥意思
另外这个在 win 环境下使用 bash 不能运行是因为 unixtime 和 touchtime 这些不一样吗 |
6
AoEiuV020CN 2022-04-14 16:54:05 +08:00
@LeeReamond #5 X 问题是说“XY 问题”,我为了解决 X 问题,而提出了 Y 问题,然后这个脚本是用来解决 Y 问题的,最后发现 Y 问题无法解决 X 问题,于是这个脚本就废弃了,
脚本里平台有关的就一个 touch 命令,用来最终设置“文件修改时间”的, 你看看有 touch 命令应该就没问题, 没有的话就找别的代替就是了, |
7
LeeReamond OP @AoEiuV020CN 还是撸了 python 控制解决了,win 可能还有一些 powershell 相关的编码问题,还有 git 的编码问题,不太确定 git 输出的文件名是否能指向文件。
https://gist.github.com/GoodManWEN/f4c84cc3ba617697eade59733ab6c4ed |