运行gulp会通过删除和添加相同的内容来更改文件

运行gulp会通过删除和添加相同的内容来更改文件,gulp,Gulp,我目前使用的是Windows,当我使用Linux(Fedora)时,这种情况不会发生,但只发生在Windows上。当我在git bash上运行gulp命令时。许多文件的更改如下所示: @@ -1,6 +1,6 @@ -{ - "globalDependencies": { - "angular": "registry:dt/angular#1.5.0+20160509150441", - "jquery": "registry:

我目前使用的是Windows,当我使用Linux(Fedora)时,这种情况不会发生,但只发生在Windows上。当我在git bash上运行gulp命令时。许多文件的更改如下所示:

@@ -1,6 +1,6 @@
-{
-       "globalDependencies": {
-               "angular": "registry:dt/angular#1.5.0+20160509150441",
-               "jquery": "registry:dt/jquery#1.10.0+20160417213236"
-       }
-}
+{^M
+       "globalDependencies": {^M
+               "angular": "registry:dt/angular#1.5.0+20160509150441",^M
+               "jquery": "registry:dt/jquery#1.10.0+20160417213236"^M
+       }^M
+}^M

我尽了最大的努力找到这个问题的解决办法。这并不是导致错误的原因,只是当我尝试提交时,这让我很恼火,因为这不是我真正想要做的更改。

看起来行尾字符正在更改为文件系统的字符,即Windows上的CRLF(回车符,换行符),或Linux上的LF(换行符)。在Linux上使用CRLF打开文件时,CR显示为
^M

您可以创建一个
.gittributes
文件,并使用以下命令设置行尾字符:

*.json  eol=lf
*.js    eol=crlf
您还可以添加一个gulp插件,将行尾重置为您想要的格式


从Bash终端运行文件上的unix2dos,查看
^M
是否消失,这将确认这是一个下线字符问题。

看起来行尾字符正在更改为文件系统的字符,即Windows上的CRLF(回车符,换行符),或Linux上的LF(换行符)。在Linux上使用CRLF打开文件时,CR显示为
^M

您可以创建一个
.gittributes
文件,并使用以下命令设置行尾字符:

*.json  eol=lf
*.js    eol=crlf
您还可以添加一个gulp插件,将行尾重置为您想要的格式


从文件上的Bash终端运行
unix2dos
,查看
^M
是否消失,这将确认这是一个下线字符问题。

所以这不是GULP的问题?我猜GULP(或GULP的插件)正在更改行结束,也许有一种方法可以阻止这种情况的发生,这取决于它发生的具体位置,但是告诉git首选的格式或添加另一个Gulp插件来强制它到您首选的行结尾可能更容易。所以这不是Gulp的问题?我猜Gulp(或Gulp的一个插件)正在改变行结尾,也许有一种方法可以阻止这种情况的发生,这取决于它发生的具体位置,但是告诉git首选的格式或者添加另一个Gulp插件来强制它到您首选的行结尾可能更容易。