如题,因为压缩包把文件时间修改了,所以大部分文件并没有修改但却显示修改(只因为修改了时间),请问如何让 git 忽略文件时间修改?
1
v2survive 2017-12-31 00:44:22 +08:00 via Android 1
git 并不存文件时间吧… 你这是解压缩的时候文件的 mode 变了?
|
2
geelaw 2017-12-31 00:48:02 +08:00
git 本来就不看文件的修改时间。
但如果你改变了压缩包里面的文件的修改时间,则压缩文件本身是变化了的,git 没办法知道怎么忽略这个变化。 |
3
houzhenhong OP @geelaw 不是压缩包,而是解压的解压出的文件修改日期改变了,请问这样有什么办法解决吗?
|
4
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$ |
5
houzhenhong OP |
6
cy97cool 2017-12-31 11:43:45 +08:00
\r\n 与\n 的换行方式区别?
Google "git 忽略换行方式" |
7
owt5008137 2017-12-31 12:06:12 +08:00 via Android
有可能变的是文件编码,或者换行符,或者 BOM
|
8
publicccc 2017-12-31 12:06:39 +08:00 1
我用 SourceTree,切分支之类的情况就会出现很多文件显示被修改。
解决办法是直接点击暂存所有,未修改的文件就消失了。 |
9
msg7086 2018-01-01 04:38:58 +08:00
换行符,BOM,文件 mode,都有可能。
从你的操作过程来看,换行符的可能性最大,提交签出时本地用 CRLF,而 tarball 里用 LF,导致 git 认为文件改变。 把所有文件 Stage 一下,让 git 自己做一遍 CRLF 转换,应该就会恢复到正常状态了。 |
10
houzhenhong OP @publicccc 正解,谢谢你们!
|