git - 为什么 ^M 会附加到 git diff 中的所有更新行
问题描述
我对源文件进行了一些更改。当我尝试查看差异时
git diff src/core/src/authentication.rs
控制台上的差异已^M
附加到我编辑的所有行中。
+ Some(b) => {^M
+ Ok(b)^M
+ }^M
+ }^M
}
我在记事本中签出,看看我是否可以在那里看到一些东西并清理它,但我尝试过的任何编码都看不到那里。我在某处读到这是一个\r
但不确定。无法在 vim 中替换/找到它。但是,这不会发生在我看到的所有文件diff
中。为什么会这样?我想这不是我的源代码的一部分,只是与 git 有关。
编辑:我使用 vim 作为我的编辑器。
解决方案
主要原因是用于表示换行符的字符序列。在 Windows 中,换行符由 表示\r\n
。因此,当我们在像 VIM 这样的 Unix/Linux 编辑器上编辑文本(在 Windows 上创建)时,编辑器会看到一个额外的字符(因为 UNIX 中的换行符是\n
)并尝试渲染它。输出结果是^M。
在 vim 上处理它的一种方法是
:set ff=unix
:wq
另一方面,它是github 文档中提到的一种标准做法,即在基于 git 的 repos 中使用“\n”作为换行符。为了在默认情况下进行设置,请将其添加到您的全局 git 配置设置中。
$git config --global core.autocrlf true
希望这可以帮助。
推荐阅读
- python-3.x - 为什么不能将变量传递给格式说明符 python
- c++ - c++ 中具有类和向量变量的函数
- sql-server - 西里尔字母不适用于 Microsoft SQL Server Management Studio
- javascript - 使用 javascript 和 api 源的股票每日图表
- python - 如何将数据框单元格值作为传递给函数的变量名返回
- python - 更改数据框列表的函数
- go - 使用停止通道停止 bufio.Scanner
- docker - Windows Server Core Docker Containers 网络问题
- reactjs - 如何修复 React Hook useEffect 缺少依赖项
- laravel - Laravel Vuejs bootstrap-table-vue jsPDF 未定义