Git commit удаляет разрывы строк - PullRequest
0 голосов
/ 29 декабря 2018

Привет! У меня проблема с передачей файла в VSCode (1.30.1) с использованием системы контроля версий git (2.19.1.windows.1).Фиксация изменяет файл, я не изменился и не хочу, чтобы меняли.Настройка следующая: я нахожусь в Windows 10, настроив git на "оформление окон стиля, коммит в стиле unix" git config --global core.autocrlf true.Но когда я фиксирую, происходит следующее:

Это файл .json со следующим ключом:

{
  "description":
    "xxxxxxx"
},

, но мой коммит превращает эту строку в

{
  "description": "xxxxxxx"
},

Протестировано core.autocrlf input и false.Но это не решает эту проблему.Не сталкивался с таким поведением раньше.Любые другие предложения или идеи?Спасибо и ура.


Обновление : еще один пример

Создание файла test.json, содержащего

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

, работает отлично, но добавлениеновая строка, такая как

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

, будет выглядеть как первая после коммита.В некотором смысле это похоже на проблему стиля, не зависящую от редактора или системы, потому что другие репозитории работают как положено.

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Проблема была связана с библиотекой lint-staged в сочетании с хуком precommit в package.json

{
  "scripts": {
    "precommit": "lint-staged"
  }
}

Форматирует кодиз-за заданных правил линтинга перед совершением.Если вы хотите узнать больше, взгляните на библиотеку @ngrx/platform , которая ее использует.

0 голосов
/ 29 декабря 2018

Должно работать с git config --global core.autocrlf false

Или вы можете попробовать с

.gitattributes файлом.Вы можете использовать его как шаблон для своих репозиториев:

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