我在源文件中做了一些更改。当我尝试使用
查看差异时git diff src/core/src/authentication.rs
控制台上的差异将^M
附加到我编辑的所有行上。
+ Some(b) => {^M
+ Ok(b)^M
+ }^M
+ }^M
}
我在记事本中签出,看是否可以看到那里的东西并清理干净,但是在尝试使用任何编码后都看不到。我读过somewhere,但这是\r
,但不确定。无法在vim中替换/找到它。
但是,这并非在我看到的diff
的所有文件中都发生。为什么会这样呢?我想这不是我的源代码的一部分,而只与git有关。
编辑:我使用vim作为编辑器。
答案 0 :(得分:5)
主要原因是用于表示换行符的字符序列。在Windows中,换行符用\r\n
表示。因此,当我们在Unix / Linux编辑器(如VIM)上编辑文本(在Windows上创建)时,编辑器会看到一个额外的字符(因为UNIX中的换行符为\n
)并尝试呈现它。输出结果为^ M。
在vim上处理它的一种方法是
:set ff=unix
:wq
另一方面,github docs中提到的标准做法是在基于git的存储库中使用“ \ n”作为换行符。为了进行默认设置,请将其添加到全局git config设置中。
$git config --global core.autocrlf true
希望这会有所帮助。