Поддержка UTF-16 в Git для Windows 2.x
Я работаю в команде над проектом разработки, который включает файлы, созданные в SQL Server Management Studio (SSMS). Кодировка файла по умолчанию для SSMS: Кодовая страница 1200 (Little-endian UTF-16).
Git для Windows распознает эти файлы как двоичные. Он не может отображать различные виды файлов и не может объединять файлы (удаленные объединения перезаписывают локальную версию).
Мы можем легко изменить кодировку по умолчанию в SSMS. Тем не менее, мы предпочитаем не рисковать тем, что какие-либо файлы UTF-16 будут зафиксированы, поскольку они приводят к хаосу в наших системах контроля версий и выпускают процессы mgmt.
В этом посте о переполнении стека описано, как использовать фильтры Clean/Smudge для преобразования файлов UTF-16 в UTF-8 на лету при фиксации с использованием двух инструментов GnuWin32: iconv
, file
,
Это хорошо работает, и мы уже давно используем его с предпросмотром msysgit 1.9.5. Тем не менее, эта версия устарела, и новый Git имеет все больше и больше функций, которые необходимы нам как команде. Проблема заключается в том, что этот обходной путь основан на обновлении двух файлов: Git\etc\gitattributes
а также Git\etc\gitconfig
, Эти 2 файла не существуют в Git для Windows 2.x
Как добавить поддержку UTF-16 в Git 2.x? Либо путем адаптации обходного пути к описанному для Git 1.x, либо любыми другими способами.
2 ответа
Сконфигурируйте 2 файла для всей системы (т.е. всех пользователей и всех репозиториев) следующим образом:
gitconfig
В вашем git для оболочки Windows:
git config --system --edit
gitattributes
git config --system core.attributesfile <path>
и использовать тот путь, который вы пожелаете
Конечно, если вы хотите уменьшить область действия до глобальной (т.е. все репо только для конкретного пользователя), тогда замените --system
с --global
,
Актуальные вопросы:
Где мне разместить мой глобальный файл gitattributes?
Откуда берутся настройки в моей конфигурации Git?
Что такое $(префикс) в $(префикс)/etc/gitconfig?
Создание глобального gitattributes
а также gitconfig
наверное, лучший путь.
Git для Windows 2 основан на MSYS2. Это имеет \etc
каталог где-то. Лучший способ получить к нему доступ - открыть оболочку MSYS2.