git diff提示filemode发生改变(old mode 100644、new mode 10075)[通俗易懂]

git diff提示filemode发生改变(old mode 100644、new mode 10075)

大家好,又见面了,我是全栈君。

今天clone代码,git status显示修改了大量文件,git diff提示filemode变化,如下:

diff --git a/Android.mk b/Android.mk
old mode 100644
new mode 100755

原来是filemode的变化,文件chmod后其文件某些位是改变了的,如果严格的比较原文件和chmod后的文件,两者是有区别的,但是源代码通常只关心文本内容,因此chmod产生的变化应该忽略,所以设置一下:

切到源码的根目录下,

git config --add core.filemode false

这样你的所有的git库都会忽略filemode变更了~

补充:

提交代码到仓库时,发现明明没有改动的文件提示有修改,并且是很多的文件都提示有修改。

但是修改的添加行和删除行都是 0。

于是 diff 一下。

$ git diff code.c

old mode 100755

new mode 100644

 

原来是文件模式发生了变化。

想了下,可能是别人从 Mac 上提交,我在 Win 上 pull 代码,导致文件模式发生了变化。

到网上看了一下如何修改:

git config core.filemode false

也可以直接修改代码仓库 .git 目录里的 config 文件的 filemode (在 [core] 段中)字段,将其改为 false。

如果要全局修改的话,加 –global 选项:

git config --global core.filemode false

fileMode 的解释:

core.fileMode 

       If false, the executable bit differences between the index and the

       working copy are ignored; useful on broken filesystems like FAT.

       See git-update-index(1). True by default.

参考链接:

http://stackoverflow.com/questions/1580596/how-do-i-make-git-ignore-file-mode-chmod-changes

 

顺便查了下这个文件模式 100644 是什么意思。

我们经常见的是后三位,比如上面的 644,UNIX 里的文件模式记法。

在 shell 里 ls -l 时第一列就是。

那么前三位代表了什么呢?

经查,前三位代表了文件类型。100 是普通文件的意思。

其它的常见类型如下所示:

    0100000000000000 (040000): Directory

    1000000110100100 (100644): Regular non-executable file

    1000000110110100 (100664): Regular non-executable group-writeable file

    1000000111101101 (100755): Regular executable file

    1010000000000000 (120000): Symbolic link

    1110000000000000 (160000): Gitlink

更详细的情况请参考下面的链接:

How to read the mode field of git-ls-tree’s output 

http://stackoverflow.com/questions/737673/how-to-read-the-mode-field-of-git-ls-trees-output

 

参考:https://www.cnblogs.com/sunzhenxing19860608/p/6066394.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111989.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • json几种格式_json的格式

    json几种格式_json的格式JSON的三种格式一、JSON的全称JSON的全称是JavaScriptObjectNotation二、为什么需要JSONJSON有三种格式,每一种写法都和JS中的数据类型很像,可以很轻松的和JS中的数据类型互相转换三、JSON的三种格式(一)、简单值的形式:JSON的简单值的格式对应着JS中的基础数据类型:数字字符串布尔值注意事项:JSON中没有undefinedJSON中的字符串必须使用双引号JSON中是不能用注释的(二)、对象形式:对应着JS中的对象注意事项:

    2022年10月12日
    0
  • redis集群主从复制原理_主从关系紫音

    redis集群主从复制原理_主从关系紫音Redis主从复制主从复制简介主从复制的概念主从复制的作用主从复制工作流程阶段一:建立连接阶段主从连接(slave连接master)第一种方式第二种方式第三种方式授权访问阶段二:数据同步阶段工作流程数据同步阶段master说明数据同步阶段slave说明阶段三:命令传播阶段命令传播阶段的部分复制服务器的运行id复制缓冲区复制缓冲区内部工作原理复制缓冲区主从服务器复制偏移量(offset)数据同步+命令传播阶段工作流程心跳机制心跳阶段注意事项主从复制常见问题引发频繁的全量复制1引发频繁的全量复制2频繁的网络中

    2022年8月13日
    5
  • URL重写:RewriteCond指令与RewriteRule 指令格式

    URL重写:RewriteCond指令与RewriteRule 指令格式Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等。本文将针对mod_rewrite和URL匹配的技术细节,以及RewriteCond与RewriteRule指令格式进行探讨。Rew

    2022年5月3日
    34
  • 布隆过滤器 原理及优缺点分析_布隆过滤器误判怎么办

    布隆过滤器 原理及优缺点分析_布隆过滤器误判怎么办用于检索一个元素是否在集合中,其空间和时间上及其优秀!

    2022年10月7日
    0
  • 微服务架构基础之API网关

    微服务架构基础之API网关

    2021年6月12日
    107
  • pandas的columns函数_python value_counts

    pandas的columns函数_python value_counts一般常用的有两个方法:1、使用DataFrame.index=[newName],DataFrame.columns=[newName],这两种方法可以轻松实现。2、使用rename方法(推荐):DataFrame.rename(mapper=None,index=None,columns=None,axis=None,copy=True,inplace=False…

    2022年9月13日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号