Git 应当怎样忽略文件时间修改?

2017-12-30 21:41:06 +08:00
 houzhenhong

如题,因为压缩包把文件时间修改了,所以大部分文件并没有修改但却显示修改(只因为修改了时间),请问如何让 git 忽略文件时间修改?

6083 次点击
所在节点    问与答
11 条回复
v2survive
2017-12-31 00:44:22 +08:00
git 并不存文件时间吧… 你这是解压缩的时候文件的 mode 变了?
geelaw
2017-12-31 00:48:02 +08:00
git 本来就不看文件的修改时间。

但如果你改变了压缩包里面的文件的修改时间,则压缩文件本身是变化了的,git 没办法知道怎么忽略这个变化。
houzhenhong
2017-12-31 06:29:43 +08:00
@geelaw 不是压缩包,而是解压的解压出的文件修改日期改变了,请问这样有什么办法解决吗?
msg7086
2017-12-31 06:51:52 +08:00
git 天生就忽略文件修改时间,不知道你要解决什么。

17:48:52 msg7086@DESKTOP-Yuuki:/l/tmp/a$ git init
Initialized empty Git repository in /l/tmp/a/.git/
17:48:55 msg7086@DESKTOP-Yuuki:/l/tmp/a$ echo test > test
17:49:24 msg7086@DESKTOP-Yuuki:/l/tmp/a$ git add test
17:49:46 msg7086@DESKTOP-Yuuki:/l/tmp/a$ git commit -m initial\ commit
[master (root-commit) f14ee74] initial commit
1 file changed, 1 insertion(+)
create mode 100644 test
17:49:51 msg7086@DESKTOP-Yuuki:/l/tmp/a$ git status
On branch master
nothing to commit, working tree clean
17:49:55 msg7086@DESKTOP-Yuuki:/l/tmp/a$ touch test
17:50:01 msg7086@DESKTOP-Yuuki:/l/tmp/a$ git status
On branch master
nothing to commit, working tree clean
17:50:05 msg7086@DESKTOP-Yuuki:/l/tmp/a$ git commit -m file\ change\ commit
On branch master
nothing to commit, working tree clean
17:50:15 msg7086@DESKTOP-Yuuki:/l/tmp/a$
houzhenhong
2017-12-31 11:33:39 +08:00
@msg7086 就像这样没有任何修改但 git 仍有记录,有可能并不是时间修改的问题,请指明谢谢!

cy97cool
2017-12-31 11:43:45 +08:00
\r\n 与\n 的换行方式区别?

Google "git 忽略换行方式"
owt5008137
2017-12-31 12:06:12 +08:00
有可能变的是文件编码,或者换行符,或者 BOM
publicccc
2017-12-31 12:06:39 +08:00
我用 SourceTree,切分支之类的情况就会出现很多文件显示被修改。
解决办法是直接点击暂存所有,未修改的文件就消失了。
msg7086
2018-01-01 04:38:58 +08:00
换行符,BOM,文件 mode,都有可能。
从你的操作过程来看,换行符的可能性最大,提交签出时本地用 CRLF,而 tarball 里用 LF,导致 git 认为文件改变。
把所有文件 Stage 一下,让 git 自己做一遍 CRLF 转换,应该就会恢复到正常状态了。
houzhenhong
2018-01-01 12:06:55 +08:00
@publicccc 正解,谢谢你们!
vwvjvwv
2018-08-26 21:37:05 +08:00
@publicccc 正解,谢谢你们!

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

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

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

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

© 2021 V2EX