Сохранение возврата каретки / перевода строки в GIT хранилище при клонировании или вытягивании - PullRequest
1 голос
/ 01 апреля 2020

Заметил что-то странное .... Я использую libgit2sharp для клонирования репозитория. Команда clone довольно проста

LibGit2Sharp.Repository.Clone(sCorrectRepo, sExePath, oOpt)

Хранилище содержит, помимо прочего, набор файлов. sql. На большинстве машин это прекрасно, но на некоторых клиентских компьютерах я обнаружил, что все окончания строки \ r - n - «перевод строки назад» заменены просто переводом строки \ n

Что может происходить здесь и, самое главное, есть ли что-то, что я могу сделать, чтобы предотвратить это? В большинстве SQL не имеет значения , что много, но у нас есть несколько SQL операторов, которые содержат фактический текст, включая CRLF, и когда эти заменяются просто на LF, Текст, который мы пытаемся использовать, больше не является правильным.

Теперь я не очень знаком с git, поэтому я не знаю, что я делаю. Я думаю, что мне нужно будет просмотреть gitattributes и добавить строку, такую ​​как

*.sql binary

, но как мне это сделать в существующем хранилище? Я попытался добавить файл gitattributes в папку. git на моем компьютере windows, но когда я попытался зафиксировать (используя черепаху git), он не увидел никаких изменений.

Мой пульт git репозиторий включен azure -devops

1 Ответ

1 голос
/ 01 апреля 2020

Хорошо, поэтому решение этой проблемы состояло из двух частей. Во-первых, как уже предложил colinD в своем комментарии, мне пришлось go и изменить конфигурацию. Что я и сделал. Но это все равно не сработало для меня. Причина заключалась в том, что в последний раз, когда я фиксировал и отправлял свои файлы. sql, он уже заменил все окончания строк на LF в удаленном хранилище. Поэтому я удалил все файлы SQL, передал и передал удаление, заново добавил их, зафиксировал и отправил повторно добавленные файлы sql, и затем это сработало.

Как предложил @EdwardThomson в своем комментарии, я затем вернулся к настройкам по умолчанию и вместо этого добавил файл .gitignore. В файле .gitignore - на том же уровне, что и папка. git в Windows - я добавил

*.sql binary

Сделал то же самое упражнение снова, удалив, commit / pu sh, затем повторно добавив, подтвердите / pu sh и подтвердите, что это тоже работает. Как и предполагалось, это может быть более современным и подходящим способом справиться с этим.

...