GitHub может хранить файлы с любым переносом в UTF-8 без BOM (в т.ч. собирает статический сайт на Jekyll), но *nix-совая консоль при вырезании BOM заменяет переносы на LF. git config --global core.autocrlf true заменяет переносы строк только при обновлении локального файла из удалённого репозитория.
Я вернулся к старому проверенному способу через фильтры в .gitattributes, для чего под Windows нужно установить глобальные настройки и сохранять текст в кодовой странице ANSI (т.е. не задумываясь о кодировке). При синхронизации репозиториев git сам отправит файлы на удалённый репозиторий в UTF-8 без BOM.
gh-pages branch для ваших статических страниц, есть разные подходы к ведению "исходной версии",
например "master-release-production", "development-master" etc