2016-11-04 47 views
2

我目前使用Windows,当我使用Linux(Fedora)时,这种情况不会发生,但它只发生在Windows上。当我在git bash上运行gulp命令时。对于许多文件,这些更改如下所示:运行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 

我尽我所能找到了解决此问题的方案。这不会导致错误,但只是当我尝试提交时会引起我的烦恼,因为这不是我想要做的改变。

回答

0

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

您可以创建一个.gitattributes文件,并设置行字符与结尾:

*.json eol=lf 
*.js eol=crlf 

您还可以添加一饮而尽插件,重置行结束你想要的格式。

从Bash终端运行unix2dos对该文件,看看^M是否消失,这将确认这是一个EOL字符问题。

+0

所以这不是GULP的问题? –

+0

我的猜测是,Gulp(或者Gulp的一个插件)正在改变行结尾,并且可能有一种方法可以根据它发生的具体情况来阻止它,但是可能更容易告诉git首选格式或添加另一个Gulp插件强制它到您的首选行结束。 –