我有一个不寻常的 git 问题。我从一个我有一段时间没有使用过的仓库中提取出来,为了简单起见,假设我有两个分支,develop 和 master。我已经在开发中,并检查了主人。我没有做任何更改,我只是在查看文件。当我去 checkout develop 时,我不能因为 README.md 被修改了。Git diff 显示整个文件已更改,内容相同,所以我认为这是某种空白错误。
我做了 git checkout -- README.md,它仍然出现修改。然后我尝试了 git stash -p (这样我就可以存储该文件)。这给了我:
warning: 3 lines add whitespace errors.
Run Code Online (Sandbox Code Playgroud)
它接着说:
warning: squelched 55 whitespace errors
warning: 60 lines add whitespace errors.
Run Code Online (Sandbox Code Playgroud)
而且文件还在修改中。
有什么办法可以解决这些错误吗?是什么原因造成的?
正如您上面提到的,该问题被命名为尾随空白。
Git 有多种方法来处理空格。您可以在这里阅读:
https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_formatting_and_whitespace
您可以尝试设置配置值:
$ git config --global core.whitespace \
trailing-space, \
-space-before-tab, \
indent-with-non-tab, \
tab-in-indent, \
cr-at-eol
Run Code Online (Sandbox Code Playgroud)
当 git 从存储中弹出内容时,它会使用apply命令将其添加回工作目录,因此您可以apply使用此配置禁用警告
git config --global apply.whitespace nowarn
or
git config --global core.whitespace fix
Run Code Online (Sandbox Code Playgroud)
#
core.whitespace要注意的常见空白问题的逗号分隔列表。
git diff将用来color.diff.whitespace突出显示它们,
并将git apply --whitespace=error它们视为错误。
您可以添加前缀
-来禁用其中任何一个(例如-trailing-space):
###
blank-at-eol将行尾的尾随空格视为错误(默认启用)。
###
space-before-tab将行的初始缩进部分中紧邻制表符之前出现的空格字符视为错误(默认情况下启用)。
###
indent-with-non-tab将使用空格字符而不是等效制表符缩进的行视为错误(默认情况下未启用)。
###
tab-in-indent将行的初始缩进部分中的制表符视为错误(默认情况下未启用)。
###
blank-at-eof将在文件末尾添加的空行视为错误(默认启用)。
###
trailing-space是一个简写形式,涵盖 Blank-at-eol 和 Blank-at-eof。
###
cr-at-eol将行尾的回车符视为行终止符的一部分,即使用它,如果回车符之前的字符不是空格(默认情况下未启用),则不会触发尾随空格。
###
tabwidth=<n>告诉制表符占据多少个字符位置;这与非制表符缩进以及 Git 修复制表符缩进错误相关。默认制表符宽度为 8。允许的值为 1 到 63。
| 归档时间: |
|
| 查看次数: |
4292 次 |
| 最近记录: |