git status出现大量文件修改

情景:

把git仓库从home文件夹移动到另一个磁盘(NTFS格式)的文件夹中,git status出现大量修改的文件,使用git diff只显示下图,即文件内容没有改变,只是文件的mode改变了.
在这里插入图片描述

原因分析

文件格式NTFS(window使用,linux也可以使用这种格式)没有Linux下丰富的权限设置。文件都被设置成了所有人员可读写执行。 git默认跟踪文件权限,因此当移动仓库导致文件权限改变后,git status提示修改.(另外,git只记录执行权限,而不记录读写权限。换句话说,644的文件和664的文件,对git来说是没区别的。)

解决办法

一般而言,我们不关心文件权限的改变,只关心文件内容的改变.因此要设置git不跟踪文件权限.

  1. 先用cat .git/config查看当前仓库的配置,出现filemode=true则表明跟踪了文件权限
    在这里插入图片描述
  2. 命令行输入git config core.filemode false即可将filemode设置为false,此时git status就不会出现因文件权限改变而导致的修改了.

上面是针对当前仓库的设置,也可以设置全局,对所有仓库都不跟踪文件权限.但是可能并不起作用,还是得对每个仓库单独设置

  • 先查看一下全局配置:git config --global -l,默认情况下core.filemode=true
  • 命令行输入git config --global core.fileMode false
  • 设置全局后,新建git仓库,并不起作用,用cat .git/config查看配置, 看到filenode=true
    在这里插入图片描述
    git config -l查看配置,看到filenode=falsefilenode=true,上面的filenode=false应该是全局设置的,下面的filenode=true是建立仓库时默认设定的,最后还是本地设置filenode=true起了作用,这里有待进一步探索解决办法
    在这里插入图片描述

参考链接

https://blog.csdn.net/zhezhebie/article/details/84853608
https://learnku.com/laravel/t/5340/linux-solution-to-modify-the-file-permissions-caused-by-the-git-record-file-changes
https://cloud.tencent.com/developer/article/1560532

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值