为什么 ^M 会附加到 git diff 中的所有更新行
Why does ^M get appended to all updated lines in a git diff
我对源文件进行了一些更改。当我尝试使用
查看差异时
git diff src/core/src/authentication.rs
控制台上的差异将 ^M
附加到我编辑的所有行。
+ Some(b) => {^M
+ Ok(b)^M
+ }^M
+ }^M
}
我在记事本中查看是否可以在那里看到一些东西并清理它,但在我尝试过的任何编码下都看不到。我读 somewhere 它是 \r
但不确定。无法在 vim 中 replace/find。
但是,在我看到 diff
的所有文件中都不会发生这种情况。为什么会这样?我想这不是我的源代码的一部分,只是与 git.
有关
编辑: 我使用 vim 作为我的编辑器。
主要原因是用于表示换行符的字符序列。在 windows 中,换行符由 \r\n
表示。因此,当我们在像 VIM 这样的 Unix/Linux 编辑器上编辑文本(在 windows 上创建)时,编辑器会看到一个额外的字符(因为 UNIX 中的换行符是 \n
)并尝试渲染它。输出结果是 ^M.
在 vim 上处理它的一种方法是
:set ff=unix
:wq
换句话说,github docs 中提到的标准做法是在基于 git 的回购协议中使用“\n”作为换行符。为了默认设置,将其添加到全局 git 配置设置中。
$git config --global core.autocrlf true
希望这对您有所帮助。
我对源文件进行了一些更改。当我尝试使用
查看差异时git diff src/core/src/authentication.rs
控制台上的差异将 ^M
附加到我编辑的所有行。
+ Some(b) => {^M
+ Ok(b)^M
+ }^M
+ }^M
}
我在记事本中查看是否可以在那里看到一些东西并清理它,但在我尝试过的任何编码下都看不到。我读 somewhere 它是 \r
但不确定。无法在 vim 中 replace/find。
但是,在我看到 diff
的所有文件中都不会发生这种情况。为什么会这样?我想这不是我的源代码的一部分,只是与 git.
编辑: 我使用 vim 作为我的编辑器。
主要原因是用于表示换行符的字符序列。在 windows 中,换行符由 \r\n
表示。因此,当我们在像 VIM 这样的 Unix/Linux 编辑器上编辑文本(在 windows 上创建)时,编辑器会看到一个额外的字符(因为 UNIX 中的换行符是 \n
)并尝试渲染它。输出结果是 ^M.
在 vim 上处理它的一种方法是
:set ff=unix
:wq
换句话说,github docs 中提到的标准做法是在基于 git 的回购协议中使用“\n”作为换行符。为了默认设置,将其添加到全局 git 配置设置中。
$git config --global core.autocrlf true
希望这对您有所帮助。