我对git有一个不寻常的问题。我已经退出了一段时间没用过的回购,为了简单起见,我说我有两个分支,开发和掌握。我已经在开发中,并检查了主人。我没有做任何改动,我只是看着文件。当我去结账开发时,我不能因为README.md被修改了。 Git diff显示整个文件已更改,内容相同,所以我认为这是某种空白错误。
我做了git checkout - README.md,它仍然出现了修改。那么我尝试了git stash -p(所以我可以隐藏该文件)。那给了我:
warning: 3 lines add whitespace errors.
接着说:
warning: squelched 55 whitespace errors
warning: 60 lines add whitespace errors.
该文件仍在修改中。
有没有办法解决这些错误?可能导致什么呢?
答案 0 :(得分:1)
如上所述,问题名为尾随空格
Git有几种处理whit空间的方法。你可以在这里阅读:
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
当git从stash弹出内容时,使用apply
命令将其添加回工作目录,以便您可以使用此配置禁用apply
警告
git config --global apply.whitespace nowarn
or
git config --global core.whitespace fix
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
是一个简短的手段,涵盖了空白时和空白时。
cr-at-eol
将行尾处的回车处理作为行终止符的一部分,即使用它,如果此回车符之前的字符不是空格(默认情况下未启用),则不会触发尾随空格。
tabwidth=<n>
告诉标签占用多少个字符位置;这与缩进与非制表符相关,当Git修复制表符缩进错误时。默认选项卡宽度为8.允许的值为1到63。