-
Notifications
You must be signed in to change notification settings - Fork 26
Conflicts Git
bopoh13 edited this page May 25, 2022
·
5 revisions
При сохранении файла из текстового редактора "Блокнот" в кодировке UTF‑8 записываются служебные символы BOM. Сторонние приложения как
dos2unix
могут удалить BOM, но и меняют символы переноса строки Windows с CRLF на LF.
A: Удаление BOM без замены символа переноса строки будет выполнять клиентский хук.
-
Нужно сохранить клиентский хук в директорию
<REPO>\.git\hooks
без расширения.sh
Хук будет выполняться перед сохранением изменений (commit). -
Для Windows необходимо задать настройку
git config --global core.autocrlf true
A: Когда автор не задал свойства бывает невозможно проследить дальнейшие изменения.
- Первым делом нужно узнать символы перевода строки (line‑ending) в репозитории
по команде
git ls-files -mo --eol
. Атрибут-mo
выберет только изменённые файлы. - Далее нужно открыть файл .gitattributes и прописать свойство
eol
# для всех файлов
*.js text eol=LF
# или для конкретного файла
<FILE>.js text eol=LF
- Если символы перевода строки (line‑ending) будут заменены, то после добавления файлов в индекс в консоли появится предупреждение
warning: CRLF will be replaced by LF in <FILE>.
The file will have its original line endings in your working directory.
- По завершению нужно сохранить изменения (commit); до этого изменения нельзя будет увидеть.
Репозиторий для практики: https://github.com/teamtam/git-line-endings
![]() |
|
---|---|
2022-05-25 | От нечего делать создал Wiki. Размещаю проверенные методы решения мелких задач. |