如何使用git stash忽略尾随空白错误

时间:2017-01-26 17:51:44

标签: git git-stash

我对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.

该文件仍在修改中。

有没有办法解决这些错误?可能导致什么呢?

1 个答案:

答案 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。