Windows与Linux行尾换行符引发Git的一系列惨案

2023-05-16

1 前言

最近在使用 Git 提交代码的时候,老是碰到一段看起来 “没有任何改动” 的代码,被 diff 检测出异常,很是苦恼,特别是项目紧急的时候,不敢用 VSCode 编辑了,只能用 vim 进行少量代码的修改、上库。

另一件事是 shell 脚本文件行尾换行符异常,导致在 linux 环境下无法正常运行,总是提示什么语法错误。

如果使用 VSCode ,可以通过右下角确认当前文件行尾换行符格式
在这里插入图片描述
另一种方法是,通过 vim 打开文件,使用如下命令,确认当前文件格式

# dos: Windows 行尾换行符格式
# unix: Linux 行尾换行符格式
set ff

在这里插入图片描述

在这里插入图片描述

我直接用的 git bash 中的 vim 打开此文件,可以发现白色背景行直接提示出来了当前文件格式。

2 行尾换行符

在遇到之前的问题时,也去网上查了不少资料,下面几篇是我当时参考的

  • https://blog.csdn.net/lysc_forever/article/details/42835203
  • https://www.cnblogs.com/youpeng/p/11243871.html
  • 【Git官方文档】https://git-scm.com/book/zh/v2/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-%E9%85%8D%E7%BD%AE-Git
  • https://blog.csdn.net/chaiyu2002/article/details/81261432

行尾换行符是什么?通过资料得知,就是文件每一行结尾的换行符号。

对于 Windows 系统来说,使用的 CRLF ,也就是 \r\n (回车换行)。

但是对于 Linux 、Mac 来说,使用的为 LF ,也就是 \n (换行)。

这两个符号的差异,会导致文件格式不同。

比如会导致 CRLF 的文件,想要在 Linux 系统执行,就会出问题。

举例来说,我在 Windows 下新建一个 Shell 脚本文件,行尾换行符是 CRLF 格式的,那么此时放到 Linux 系统执行,是会报错,无法执行的。

3 Git配置

我的实际开发环境是这样的:
1、本地电脑是 Windows 10 环境,使用 VSCode 开发;
2、代码存储、编译使用的 Linux 服务器,Ubuntu 16.04 环境;
3、Windows 与 Linux 环境下均安装 Git 管理工具;

此时就有两个环境的 Git 需要配置,目前我的配置如下,已经可以正常使用了😁😁😁

Windows 环境下 Git 相关配置如下

# Windows 打开 autocrlf
# pull 时转换为 CRLF ,push 时转换为 LF
core.autocrlf=true

Linux 环境下 Git 相关配置如下

# Linux 环境关闭 autocrlf
core.autocrlf=false

# Linux 打开 safecrlf 配置,确保同一份文件只有一种统一的行尾换行符
# 如果不一致,diff 会提示差异
core.safecrlf=true

通过上述配置,这里就可以顺利的提交代码啦~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows与Linux行尾换行符引发Git的一系列惨案 的相关文章

  • 合并多个 git 存储库

    假设我有一个看起来像这样的设置 phd code phd figures phd thesis 由于历史原因 这些都有自己的 git 存储库 但我想将它们合并为一个 以稍微简化事情 例如 现在我可能会进行两组更改 并且必须执行类似的操作 c
  • 如何设置“阅读文档”以使 Sphinx autodoc 选项发挥作用?

    我的项目不是使用 autodoc 构建的 我遇到了关于我的项目未在 autodoc 中构建的常见问题 https read the docs readthedocs org en latest faq html my project isn
  • 我可以获取两次提交之间 git 子文件夹中已更改文件的列表吗?

    我有一个包含许多文件夹的 git 存储库 我需要找出在两次提交之间这些文件夹之一中的哪些文件发生了更改 有没有一个好的方法来做到这一点 我想你可以坚持走最后的路git diff git diff HEAD HEAD special fold
  • 使用 SourceTree 克隆存储库

    有人可以给我一个简单的使用 SourceTree 克隆存储库的快速演练吗 在书签中 我单击克隆存储库 对于源路径 我粘贴如下所示的 URL 电子邮件受保护 cdn cgi l email protection 客户端 应用程序名称 ios
  • 原子的 C++ 内存屏障

    在这方面我是个新手 谁能提供以下内存屏障之间差异的简化解释 窗户MemoryBarrier 围栏 mm mfence 内联汇编asm volatile memory 内在的 ReadWriteBarrier 如果没有简单的解释 一些好文章或
  • 如何列出未推送的 Git 提交(本地但不在源上)

    如何查看我所做的 尚未推送到远程存储库的任何本地提交 偶尔 git status将打印出我的分支是X提交之前origin master 但不总是 这是我安装的 Git 的错误 还是我遗漏了什么 这给出了 origin master 和 HE
  • 每个分支的 Git 磁盘使用情况

    你知道是否有办法列出每个分支的 git 存储库的空间使用情况 喜欢df or du would 分支的 空间使用情况 是指 尚未在存储库的其他分支之间共享的提交所使用的空间 这没有正确的答案 如果您查看仅包含在特定分支中的提交 您将获得 b
  • Azure git 部署 - 第二个程序集中缺少引用

    我正在尝试将 Bitbucket 部署设置到 Azure 网站 我成功链接了 Bitbucket 和 Azure 但是当我推送到 Bitbucket 时 我在 Azure 站点上收到以下错误 如果我单击 查看日志 它会显示以下编译错误 D
  • 无法在 cmd 中通过管道传递 cmdlet 对象

    我正在使用这个 powershell 命令来获取特定的用户配置文件 获取 WmiObject Class Win32 UserProfile Where Object LocalPath eq C Users Pela 但是当我通过调用 p
  • 由于 abi::cxx11 符号导致的链接问题?

    我们最近收到一份报告 因为GCC 5 1 libstdc 和双 ABI http gcc gnu org onlinedocs libstdc manual using dual abi html 它似乎Clang 不知道 GCC 内联名称
  • 虚拟USB设备的安装与仿真

    我已经读过创建虚拟USB设备 https stackoverflow com questions 5016363 creating a virtual usb device and 虚拟USB设备 https stackoverflow c
  • 如何通过不同的接口路由 TCP/IP 响应?

    我有两台机器 每台机器都有两个有效的网络接口 一个以太网接口eth0和 tun tap 接口gr0 目标是使用接口在机器 A 上启动 TCP 连接gr0但然后让机器 B 的响应 ACK 等 通过以太网接口返回 eth0 因此 机器 A 发出
  • Git子模块绝对工作树路径配置

    这是我的子模块redmine 仪表板配置文件 子模块配置文件 core repositoryformatversion 0 filemode true bare false logallrefupdates true worktree Us
  • 无法在 Powershell 中运行 R.exe

    我经常发现在命令行 Windows 上运行 R 更有用 然而 当我在 Powershell 中尝试时 我往往会遇到问题 但这可以通过第一次运行轻松克服cmd然后就可以了 这是我执行此操作时遇到的错误R CMD BATCH Invoke Hi
  • C++/Windows:如何报告内存不足异常(bad_alloc)?

    我目前正在为 Windows MSVC 9 0 应用程序开发基于异常的错误报告系统 即异常结构和类型 继承 调用堆栈 错误报告和日志记录等 我现在的问题是 如何正确报告和记录内存不足错误 当发生此错误时 例如作为bad alloc抛出的ne
  • 有关 CredEnumerate 的帮助

    作为后续this https stackoverflow com questions 199518 how to programatically add mapped network passwords winxp我希望有人可以帮助解决这个
  • 如何使用 git-tfs 清理损坏的历史记录

    我不确定我是如何进入这种状态的 但我的 tfs 默认远程分支中有一些 TFS 中不存在的提交 所以我想摆脱它们 所以我的历史是这样的 A B C D tfs default 但提交 B 和 C 实际上并不是 TFS 中的变更集 因此 当我签
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • git tag --contains 如何工作?

    从几天前开始 我一直在尝试确定在哪个版本 由标签指定 中部署了特定修复 由提交指定 这里的一些帖子发布了这一点git tag contains是收集这些信息的方法 但是选项的文档 https git scm com docs git tag
  • 如何使用批处理文件创建 EXE 可执行文件? [复制]

    这个问题在这里已经有答案了 我希望能够简单地运行 Windows 批处理文件并让它创建 exe 可执行文件 我知道您可以使用以下脚本批量创建文件 echo off echo This will be in a text file gt gt

随机推荐

  • Git 初体验

    文章目录 1 文章结构2 Git安装3 个人开发3 1 怎么理解SSH xff1f 3 2 SSH场景3 2 1 场景13 2 2 场景23 2 3 场景3 3 3 怎么理解HTTPS xff1f 4 公司开发5 小二总结 上篇文章 xff
  • 一年一度的1024,一周一次的每周思考,来点碰撞

    时间过得真快呀 xff0c 又到了著名的 程序员节 最近在整理任务的时候 xff0c 发现列表中还藏着这样一条 在科技日益发达的今天 xff0c 恰逢 程序员节 xff0c 小二不免又产生了一些思考 前几年 xff0c 老家附近修了飞机场
  • 鲲鹏HCIA系列笔记题库汇总(内含PDF)

    大家好呀 xff0c 我是小二 xff0c 好久不见 之前小二分享了几篇鲲鹏 HCIA 认证的笔记 xff0c 反响还不错 现在小二特地把几篇笔记整理成一个 PDF 文档 xff0c 方便阅读 xff0c 也方便查找 目前已经更新到 V1
  • 【每周思考-15】我是标题

    不知道写什么 xff0c 先陈述一些事实吧 C程序设计语言 本周终于看完了第一遍 xff0c 练习题正在进行 从零开始学理财 杨婧 也看完了 xff0c 实操也在慢慢进行 xff0c 周期久一点 x1f611 上周末看了 金陵十三钗 xff
  • javaweb中jstl无法解析的错误解决方法

    javaweb中jstl无法解析的错误解决方法 无法在web xml或使用此应用程序部署的jar文件中解析绝对uri xff1a http java sun com jstl core 一 问题的产生 在javaweb项目中引入了 jstl
  • 500、1000

    上周日 xff0c 是我参加工作整整 1000 天 xff0c 确实没想到 xff0c 我都已经混迹职场这么久了 周一呢 xff0c 也是距离我写第一篇公众号文章的第 500 天 xff0c 确实也没想到写这么久了 两个相比较来说 xff0
  • 说实话,想家了

    想家了 这周最大的惊喜 xff0c 就是发现1月底该过年了 xff0c 好开心啊 xff01 毕业这几年是越来越恋家 xff0c 光是想想跟家人在一块的时光 xff0c 就美滋滋的 也许是这几年发生了太多事情 xff0c 前年爸爸车祸 xf
  • 恭喜“结业”啦

    之前报名的深圳市人工智能培训 xff0c 今天上完了最后一次课 xff0c 也考完试 xff0c 拿到结业证书啦 xff0c 哈哈 这个课程是人社局主办的 xff0c 有市级 区级的培训 个人觉得挺好 xff0c 带我简单的了解下人工智能的
  • 思考,分享

    不知不觉 xff0c 每周思考也陪我跨了个年 xff0c 本篇已经是第 22 周了 写 每周思考 时 xff0c 总能让我回想起很多事情 近段时间 xff0c 大部分精力都扑在工作上了 xff0c 工作日晚上回家 xff0c 也没有写文章的
  • Git代码提交,固定日志模板

    时间 xff1a 2022年1月9日21 38 22 团队开发 xff0c 但是每个人的日志风格不同该怎么办 xff1f 通过配置服务器的 Git 提交日志 xff0c 就可以实现统一的代码提交风格 先看实现效果 xff0c 如下图 这样大
  • 《伤逝——涓生的手记》,读后有感

    看鲁迅先生的 狂人日记 有一段时间了 xff0c 其中有一短篇 xff0c 名叫 伤逝 涓生的手记 xff0c 有一些浅显的思考 xff0c 分享给大家 xff0c 可以互相讨论学习 x1f37b 参考资料 xff1a 百度百科 伤逝 xf
  • 我的2021

    牛年的事情 xff0c 肯定要在牛年结束 现在已经是 2022 年的一月份了 xff0c 才开始动笔 xff0c 写这份 2021 的年终总结 有两方面的原因 xff0c 一方面是觉得 12 月的时间太紧了 xff08 参加了培训班 xff
  • C/C++ 语言 printf 可以直接使用宏定义打印?

    hello xff0c 你好呀 xff0c 我是小二 在 编码 过程中 xff0c 小二发现一种神奇的用法 xff1a 打印时 xff0c 直接使用宏定义 xff01 于是小二决定自己尝试一把 1 基础环境 使用的在线编译器是这个 x1f4
  • Anaconda3安装教程记录

    参考资料 1 官网 xff1a https www anaconda com products individual 2 安装教程 xff1a https mp weixin qq com s ip8TQF2pyjLwEBixwoxxBw
  • Anaconda3修改默认环境保存路径

    参考链接 1 https blog csdn net javastart article details 102563461 配置方法 方法一 1 修改 C 盘 condarc 隐藏文件 xff1b 2 在文件末尾增加如下内容 envs d
  • javaweb servlet 在控制台上输出乱码的解决

    上午打开我的idea 正在愉快的写代码 xff0c 某段程序中需要servlet在控制台上打印一个消息 xff0c 一个悲催的故事发生了 xff0c 打印的中文字符全乱码了 难道是我的tomcat xff0c 没有设置吗 xff1f tom
  • Win10系统,使用VSCode提示错误fatal: detected dubious ownership in repository at

    1 环境信息 1 Win10 系统 2 VSCode 软件 2 问题现象 使用 VSCode 打开 Samba 中的 Git 工程时 xff0c Git 相关插件不会启用 xff0c 通过 git 输出界面 xff0c 可以看到有提示如下错
  • C++程序存在多个cin输入时,后边的cin失效

    1 参考资料 1 https www cnblogs com pengjun shanghai p 4800871 html 2 C 43 43 Primer Plus xff08 第6版 xff09 中文版 xff0c 第 4 2 5 小
  • C++整形变量临界值问题思考

    最近调试代码时 xff0c 遇到了一个问题 程序中定义了 int 类型的变量 xff0c 在代码中做自增操作 xff0c 当达到某一阈值 xff08 等于15 xff09 的时候 xff0c 会做一些特殊处理 实际测试发现 xff0c 该阈
  • Windows与Linux行尾换行符引发Git的一系列惨案

    1 前言 最近在使用 Git 提交代码的时候 xff0c 老是碰到一段看起来 没有任何改动 的代码 xff0c 被 diff 检测出异常 xff0c 很是苦恼 xff0c 特别是项目紧急的时候 xff0c 不敢用 VSCode 编辑了 xf