资讯

展开

Windows和Linux行尾换行符转换方法

作者:快盘下载 人气:

1 前言

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

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

如果使用 VSCode ;可以通过右下角确认当前文件行尾换行符格式
Windows和Linux行尾换行符转换方法
另一种方法是;通过 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 ;也就是 ;回车换行;。

但是对于 Linux 、Mac 来说;使用的为 LF ;也就是 ;换行;。

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

比如会导致 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

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

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!