Git commit删除换行符

时间:2018-12-29 15:34:43

标签: git line-endings

嗨,我在使用git源代码控制(2.19.1.windows.1)在VSCode(1.30.1)中提交文件时遇到问题。提交更改了一个文件,我没有更改,并且不想更改。设置如下:我在Windows 10上,将git配置为“ checkout windows style,commit unix style” git config --global core.autocrlf true。但是当我提交时,会发生以下情况。

这是一个具有以下密钥的.json文件:

{
  "description":
    "xxxxxxx"
},

但是我的提交将这一行变成了

{
  "description": "xxxxxxx"
},

已测试core.autocrlf inputfalse。但这不能解决该问题。以前没有面对过这种行为。还有其他建议或想法吗?谢谢和欢呼。


更新:另一个示例

创建一个包含以下内容的test.json文件

{
  "test1": {},
  "test2": {}
}

工作完美,但添加了新行

{
  "test1": {
  },
  "test2": {}
}

看起来像提交后的第一个。似乎在某种程度上是样式问题,而不取决于编辑器或系统,因为其他存储库正在按预期工作。

2 个答案:

答案 0 :(得分:0)

它应该与git config --global core.autocrlf false

一起使用

或者您可以尝试

.gitattributes文件。您可以将其用作存储库的模板:

# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

答案 1 :(得分:0)

问题与lint-staged库和 package.json

中的let res = try? JSONDecoder().decode(Root.self, from:data) 挂钩相关
precommit

在提交之前,由于给定的掉毛规则,它会格式化代码。如果您想了解更多详细信息,请查看使用它的{ "scripts": { "precommit": "lint-staged" } } library