问题描述:
项目软件安装shell脚本上git仓库管理,但拉取后,上linux运行报错。

问题思考:根据描述信息可以查看到\r字样,初步判别为换行符导致

1、将脚本文件移动至notepad++中,通过视图—>显示符号—>显示所有符号,一顿操作后,可以看到脚本中一串CRLF的符号

相关名词解释
CR:Carriage Return,对应ASCII中转义字符\r chr(13),表示回车
LF:Linefeed,对应ASCII中转义字符\n chr(10),表示换行
CRLF:Carriage Return & Linefeed,\r\n,表示回车并换行

进而了解到普遍使用的编辑器IDEA因为默认是windows使用场景,所以换行符的默认设置为CRLF;但Shell脚本是在Linux下运行,则需要被替换为LF

在IDEA右下角,除了编码格式以外,还有个Line Separator

废话不多说,为了解决问题,就立马着手将所有的Shell脚本改成了LF

一劳永逸,杜绝后续类似问题的出现,可将IDEA的默认配置修改为了LF

*最后的选项,大致是允许IDEA的配置覆盖重写代码的样式设置;可视自身情况选择或取消,与本文影响不大

2、兴致冲冲,将修改后的代码提交后,让测试同事重新验证,emmm对面拉取的还是CRLF。尴尬癌都要犯了

首先怀疑是git未能识别到CRLF和LF这类修改
尝试将文件删除后commit & push再新增LF格式文件后 commit & push
失败!!!
在搜了Git LF和CRLF问题后,发现此事儿有点猫腻
git的默认设置中有一个字段:core.autocrlf ,作用就是:
在push的时候会把CRLF转换成LF;pull的时候则会把LF转换成CRLF

原本Git这个自动转换的配置是在做好事儿,但是却坑苦了不懂它的人… …

OK!!!明白了原理,那么解决思路就来了:
以下命令在Git Bash中执行即可
场景一、代码在window提交,在windows使用(即默认场景)
$ git config --global core.autocrlf true
场景二、代码在windows提交,在Linux或者Mac系统或者Jenkins上专门打包为服务器使用,无需Git在pull时进行自动转换;(即Git在push时把CRLF转换成LF,pull时不转换)
$ git config --global core.autocrlf input
场景三、不想要Git自动转换:
$ git config --global core.autocrlf false
综上:
1、编辑器本身的换行符问题
2、Git在提交和拉取过程的自动转换问题

IDEA和GIT关于文件中LF和CRLF问题的更多相关文章

  1. [转]git在eclipse中的配置

    一_安装EGIT插件 http://download.eclipse.org/egit/updates/ 或者使用Eclipse Marketplace,搜索EGit 二_使用EGIT前的配置 配置个 ...

  2. 【转】git在eclipse中的配置

    原文网址:http://www.cnblogs.com/zhxiaomiao/archive/2013/05/16/3081148.html 一_安装EGIT插件 http://download.ec ...

  3. git在eclipse中的配置 转载

    git在eclipse中的配置 转载 一_安装EGIT插件 http://download.eclipse.org/egit/updates/ 或者使用Eclipse Marketplace,搜索EG ...

  4. git ignore文件

    创建.gitignore文件来设置git要忽略的文件模式: 官方文件列列表:https://github.com/github/gitignore 1. 所有空行或者以 # 开头的行都会被 Git 忽 ...

  5. git 中关于LF 和 CRLF 的问题

    git 中关于LF 和 CRLF 的转换问题注意: Windows下编辑器设置中,建议调整设置为Unix风格.(具体设置位置各种编辑器上不同,需要找找) 使用Git Bash进行命令行操作时,运行一下 ...

  6. git忽略文件并删除git仓库中的文件

    问题描述 不慎在创建.gitignore  文件之前的时候将文件push到了 git仓库,即使之后在.gitignore文件中写入新的过滤规则,这些规则也不会起作用的,git依然会对所有git仓库中的 ...

  7. 用python 替换文件中的git地址

    有个需求要替换文件中git地址,要替换成的git地址是一个变量 本来想用sed替换但是git地址中有斜杠符号 需要转义,提前知道还好弄,如果是变量就不好处理了 #!/usr/bin/python3 # ...

  8. git 把文件从 版本管理中移除 andorid版本

    刚学git时,一股脑吧所有文件全部加到版本管理中,现在做Android开发,这样做就有很大的问题了,gen  和bin  文件夹下的文件是编译生成的,最好不要加到版本管理中,最好加入到.gitigno ...

  9. Eclipse中使用GIT提交文件至本地

    GIT提交文件至本地: 1.  右击项目——Team——Commit…: 2.在弹出的Commit Changes框中——选择要提交的文件——填写提交说明——点击Commit,即可提交至本地.

  10. git忽略项目中的指定文件

    git仓库提交原则:提交给远程仓库的只有源代码和相关的配置文件 如果是使用模板建立的仓库,会自带有.gitignore文件,无需再建立.当然如果需要在指定文件忽略,只需要在这个文件中添加指定的文件即可 ...

随机推荐

  1. 对抗生成网络(GAN)简单介绍

    对抗生成网络主要由生成网络和判别网络构成,GAN在图像领域使用较多.利用生成网络生成假的图像,然后利用判别器是否能判断该图像是假的. 1.用于医学图像分割,一般我们可以利用一个U-Net网络生成分割结 ...

  2. 16 Transformer 的编码器(Encodes)——我在做更优秀的词向量

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...

  3. 云原生周刊:6 项 K8s 成本控制策略 | 2023.7.17

    开源项目推荐 Base Image Finder 当使用容器扫描工具来识别已知漏洞(CVE,或常见漏洞和暴露)时,可能很难理解漏洞在容器中的位置,以及如何缓解这些漏洞.通常,最简单.最有效的缓解方法是 ...

  4. 相机系统 GLFW OPENGL

    目录 0. 前言 1. 世界坐标系 2. GLFW 窗口坐标系 与 坐标系变换 3. 相机是什么东西 4. 相机的平面位移(上下左右) 5. 相机的聚焦点环绕(球形环绕 ArcBall Orbit) ...

  5. bresenham算法(贝汉明算法)

  6. antdesign vue 步骤条a-step按审核人员节点排序显示逻辑

    一.需求内容 目前审核人员角色有:学术.法务.售后,串行执行审核流程. 审核流程:发起/修改审核->审核节点 审核节点规则:学术->法务->售后,每个节点均可以审核或修改. 审核状态 ...

  7. Next.js 实战开发入门 1 开发环境部署 - 曲速引擎 Warp Drive

    开发目标 我们将构建一个简化版本的财务仪表板,其内容包括:公共主页.登录页面.受身份验证保护的仪表板页面.用户可以添加.编辑和删除发票 开发环境配置 开发客户端 Windows 10 (不限系统,兼容 ...

  8. 痞子衡嵌入式:利用i.MXRT10xx系列内部DCP引擎计算CRC32值时需注意数据对齐

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是利用i.MXRT10xx系列内部DCP引擎计算CRC32值时需注意数据对齐. MCU 开发里常常需要 CRC 校验来检查数据完整性,CR ...

  9. python socket检测端口及ping检测

    python根据socket模块检测端口及vip #!/usr/bin/env python # -*- coding: utf8 -*- from .ping_helper import Pinge ...

  10. JDK 7 中的 Fork/Join 模式

    轻松实现多核时代的并行计算 随着多核时代的来临,软件开发人员不得不开始关注并行编程领域.而 JDK 7 中将会加入的 Fork/Join 模式是处理并行编程的一个经典的方法.虽然不能解决所有的问题,但 ...