拷贝git项目后文件权限莫名其妙被修改(mode change 100644 => 100755),该如何处理?

这篇具有很好参考价值的文章主要介绍了拷贝git项目后文件权限莫名其妙被修改(mode change 100644 => 100755),该如何处理?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

把一批 git 项目从一台设备拷到另一台设备之后,未对文件做任何修改,但是进入到项目的根目录下,执行git status却发现所有的文件状态都是modified

感觉比较诡异

执行git diff --summary 发现大多都是 mode change 100644 => 100755,原来是拷贝文件的过程中,文件的权限被自动修改了,权限值由644变成了755.

这种情况如何处理呢?

git 修改文件权限,程序员必备软件,git

关闭 git 的 filemode

  • 全局关闭
git config --global core.filemode false
  • 单项目关闭
git config core.filemode false

修改文件的权限(推荐使用这个方法)

git diff --summary | grep --color 'mode change 100644 => 100755' | cut -d' ' -f7- | tr '\n' '\0' | xargs -0 chmod -x
git diff --summary | grep --color 'mode change 100755 => 100644' | cut -d' ' -f7- | tr '\n' '\0' | xargs -0 chmod -x
 git diff --summary | grep --color 'mode change 100644 => 100755'                 
 mode change 100644 => 100755 .gitignore
 mode change 100644 => 100755 Makefile
 mode change 100644 => 100755 pom.xml
  • cut -d' ' -f7-

对文本进行用 空格 进行切割取出第7列值(下标从1开始,f1为完整的字符窜)。也就是文件的全路径。

git diff --summary | grep --color 'mode change 100644 => 100755' | cut -d' ' -f7-
.gitignore
Makefile
pom.xml
  • tr '\n' '\0'

把分割符由\n变为\0

git diff --summary | grep --color 'mode change 100644 => 100755' | cut -d' ' -f7- | tr '\n' '\0'
.gitignoreMakefilepom.xml
  • xargs -0 chmod -x

\0作为定界符

修改所有满足条件的文件的文件权限

git diff --summary | grep --color 'mode change 100644 => 100755' | cut -d' ' -f7- | tr '\n' '\0' | xargs -0 chmod -x

检查是否修改成功

git diff --summary | grep --color 'mode change 100644 => 100755' | cut -d' ' -f7-

相反操作

给文件加权限文章来源地址https://www.toymoban.com/news/detail-717970.html

git diff --summary | grep --color 'mode change 100755 => 100644' | cut -d' ' -f7- | tr '\n' '\0' | xargs -0 chmod +x

到了这里,关于拷贝git项目后文件权限莫名其妙被修改(mode change 100644 => 100755),该如何处理?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 时间格式中莫名其妙加了个T怎么处理

    目录 为什么会多一个T 应该怎么处理 1.在实体类中加注解 ​编辑  2.直接转换 3.参考网上其他博客 LocalDateTime的源码打印中是默认在日期和时间点中间加了个T的 LocalDateTime源码: 1.在实体类中加注解 在实体类中加入下列代码,我是这样处理的(我是在往前台传展示的时候发现

    2024年02月13日
    浏览(37)
  • **Unity中莫名其妙得小问题-灯光和天空盒

    Unity中莫名其妙得小问题 1、出现Lighting has been disabled in at least one Scene view.Any changes applied to lights inthe Scene will not be updated in these views until Lighting has been enabled again. 在至少一个场景视图中已禁用照明。在重新启用照明之前,将不会在这些视图中更新应用于场景中的灯光的任何更

    2024年02月12日
    浏览(41)
  • IDEA “Cannot resolve symbol”如何解决(莫名其妙爆红)

    IDEA 无法识别同一个 package 里的其他类,将其显示为红色。可以编译 compile 。鼠标放上去后显示 “Cannot resolve symbol XXX”,重启 IDEA ,重新 sync gradle,Clean build 都没有用。 多半是因为 IDEA 之前发生了错误,某些 setting 出了问题。也可能是缓存有些异常 点击菜单中的 “File”

    2024年02月08日
    浏览(27)
  • 使用 fastjson 又又又翻车了,莫名其妙多了属性。。

    有一位同事说使用 fastjson 进行 JSON 序列化存储到数据库后,发现 JSON 字符串“莫名其妙地”多了一些属性!帮看了下代码,看到基本类型的布尔类型以 is 开头的属性,再看到 fastjson ,就有点想笑。 定义 MyClass 编写测试代码: 结果: 我们发现多了一个 active 属性,少了一个

    2024年02月16日
    浏览(30)
  • 解决魔兽世界wow中鼠标莫名其妙消失或自动跳回屏幕中间等类似问题整理

    魔兽世界已经离开中国大陆~~,最近在玩xxx,咳咳,突然发现一个远古问题,一直以为是自己的鼠标问题,但这么多年换了这么多台电脑,这个问题也一直存在,今天突发奇想查了一下,结果竟然有答案,还在的老铁们,试试看有用么? 玩wow的时候,鼠标有时候会突然消失,

    2024年02月11日
    浏览(260)
  • VS2019 莫名其妙出现: C2059 语法错误:“}“,C2143 语法错误:缺少“;“(在“}“的前面),C2065 未定义标识符,C2039 不是““的成员等

    一、问题 VS2019 莫名其妙出现: C2059 语法错误:\\\"}\\\" C2143 语法错误:缺少\\\";\\\"(在\\\"}\\\"的前面) C2447    “{”: 缺少函数标题(是否是老式的形式表?) C2065 未定义标识符 C2039 \\\"\\\"不是\\\"\\\"的成员 等错误,看代码其实完全没有任何问题,究竟是怎么回事呢?  二、解决办法 找到相关行附近的注

    2024年02月06日
    浏览(68)
  • Anaconda莫名其妙出现:Unable to create process using ‘C:\Users\<UserName>\.conda\envs\YOLOV5_obb\python.exe

    Unable to create process using ‘C:UsersMasterLee.condaenvsYOLOV5_obbpython.exe “C:UsersMaster Lee.condaenvsYOLOV5_obbScriptspip-script.py” install numpy’ 原因是我之前用的都是python3.7,但是今天新环境用了python3.9.而后者没有 被添加进系统环境变量。理论上应该是自动添加的啊,不知道哪里出现问

    2024年02月05日
    浏览(30)
  • Linux/Ubuntu下使用git从Github拉取项目文件、提交修改后文件的完整流程演示

    git是一种分布式开源版本控制系统,它有本地仓库和远程仓库,远程仓库可以和Github的仓库(Repositories)进行链接。远程仓库可以和Github的仓库(Repositories)链接后,提交代码时,在本地修改完代码后,使用git commit将修改提交到本地仓库中,然后再用git push将本地仓库的修改推送到

    2024年02月04日
    浏览(36)
  • Linux 文件权限 ( 中 ) 修改文件权限 ( 属主或属组)

                    命令格式 1 :  chmod [- 选项 ] [u/g/o/a] [+-=] [rwx] 文件或目录 ...                                   注   :  #     ugoa :  就是我们上篇讲到的 :                                                            ===                                

    2024年02月06日
    浏览(27)
  • 【Linux】文件 --- 文件属性 | 修改文件属性与权限

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【Linux】系统学习 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪 在 Linux 系统中,我们可以使用 ls -al 指令来列出所有的文件信息,如下图所示

    2024年02月04日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包