Github изменяет хранилище на неправильный язык
Я знаю, что это не огромная сделка, но мне нравится, чтобы мой Гитуб был лингвистически диверсифицирован. Я написал проект в Swift, и когда я его совершаю, он говорит об этом в Objective C.
Я думаю, это может быть потому, что фреймворки Parse написаны в Objective C, и он обнаруживает это, но есть ли способ изменить язык отображения на главной странице репозитория?
Ответы
Ответ 1
Я обнаружил, что самое простое - создать файл с именем.gitattributes в корневой папке моего хранилища и передать ему следующее содержимое:
* linguist-vendored
*.js linguist-vendored=false
В этом примере github/linguist игнорирует все файлы, а затем просто просматривает файлы.js. Мой проект https://github.com/aim12340/jQuery-Before-Ready был указан как HTML, поскольку файлы примеров HTML были больше, чем файлы JS. Этот файл исправляет это для меня, и теперь он указан как JavaScript
Ответ 2
Как уже упоминалось на странице справки GitHub
GitHub использует библиотеку Linguist с открытым исходным кодом для определения языков файлов для подсветки синтаксиса и статистики репозитория.
Некоторые файлы трудно идентифицировать, и иногда проекты содержат больше файлов библиотеки и поставщиков, чем их основной код.
Так что вам нужно обратиться к github/linguist#troubleshooting
, чтобы исправить эту ситуацию.
Проценты рассчитываются на основе байтов кода для каждого языка в соответствии с API-интерфейсом List Languages.
Если панель сообщает о языке, который вы не ожидаете:
- Нажмите на название языка в панели статистики, чтобы увидеть список файлов, которые идентифицированы как этот язык.
- Если вы видите файлы, которые вы не написали, рассмотрите возможность перемещения файлов по одному из путей для вендорного кода или используйте функцию ручного переопределения, чтобы игнорировать их.
- Если файлы неправильно классифицированы, найдите открытые проблемы, чтобы узнать, сообщал ли кто-нибудь еще об этой проблеме. Любая информация, которую вы можете добавить, особенно ссылки на публичные репозитории, полезна.
- Если нет сообщений о проблемах этой неправильной классификации, откройте проблему и включите ссылку на репозиторий или образец кода, который неправильно классифицирован.
Обновление февраля 2017 года (год спустя):
Статья " Как изменить язык репо в GitHub " от Моники Пауэлл
Изучив, как решить GitHub, неправильно классифицируя язык ваших проектов, я обнаружил, что решение так же просто, как сказать GitHub, какие файлы игнорировать.
Хотя вы все еще хотите зафиксировать эти файлы в GitHub и, следовательно, не можете использовать .gitignore
вы можете указать GitHubs linguist, какие файлы игнорировать в файле .gitattributes
static/* linguist-vendored
Этот однострочный файл сказал GitHub игнорировать все мои файлы в моей папке static/
, где хранятся CSS и другие ресурсы для приложения Flask
Раздел "Использование .gitattributes
" показывает, как помечать неправильные языки.
Например:
Проверка кода, который вы не написали, такого как библиотеки JavaScript, в вашем git-репозитории является обычной практикой, но это часто приводит к раздуванию статистики вашего проекта и даже может привести к тому, что ваш проект будет помечен как другой язык.
По умолчанию Linguist рассматривает все пути, определенные в vendor.yml
как вендорные, и поэтому не включает их в статистику языка для хранилища.
Используйте атрибут linguist-vendor для путей поставщиков или поставщиков.
$ cat .gitattributes
special-vendored-path/* linguist-vendored
jquery.js linguist-vendored=false
Ответ 3
Для простоты позвольте мне поделиться своими шагами:
Перейдите в корневую папку вашего проекта;
Создайте файл с именем .gitattributes, используя любые инструменты по вашему выбору:
touch.gitattributes
Отредактируйте файл, следуя инструкциям библиотеки Linguist, чтобы сообщить Github, как это сделать, например:
vi.gitattributes
Использование linguist-vendor позволяет Github "пропустить" обнаружение для этой папки и подпапок:
src/main/resources/static/* linguist-vendored
Используйте атрибут linguist-documentation, чтобы пометить или отменить пометку путей в качестве документации:
project-docs/* linguist-documentation
ИЛИ отметьте отдельный файл, содержащий документацию
documented_code.rb linguist-documentation=true
Это немного странно, но вы также можете сказать Github, что нужно обрабатывать некоторые файлы с определенным расширением (например, *.rb) как Java:
*.rb linguist-language=Java
Git добавить, зафиксировать и затем отправить его на Github, ярлык будет исправлен почти сразу.
Ответ 4
Замените ваши .gitattributes этим, который переклассифицирует все файлы как Java.
*.* linguist-language=Java
лингвист
Ответ 5
В файле .gitattributes просто скажите Linguist не определять файловые языки, которые вам не нужны.
Пример для игнорирования файлов Javascript.
*.js linguist-vendored
Ответ 6
Вы можете избежать неожиданного обнаружения языков (по расширению или по подпапке проекта и т.д.), Используя параметр github linguist определяемый: в вашем .gitattributes файле:
В языковую статистику включены только языки программирования. Языки другого типа (как определено в languages.yml
) не "обнаруживаются", поэтому их нельзя включать в статистику языков.
Используйте атрибут linguist-detectable
, чтобы пометить или отменить пометку путей как обнаруживаемых:
*.kicad_pcb linguist-detectable=true
*.sch linguist-detectable=true
tools/export_bom.py linguist-detectable=false
Ответ 7
Создайте файл .gitattributes в корне вашей папки. Предположим, вы хотите, чтобы языком был Java, просто скопируйте и вставьте
*.java linguist-detectable=true
*.js linguist-detectable=false
*.html linguist-detectable=false
*.xml linguist-detectable=false
в файле .gitattributes и нажмите файл в репозитории. Обновите страницу GitHub, чтобы увидеть изменение языка.
Примечание: Итак, для нужного языка сделайте его верным, а другое - ложным. Должно работать нормально
Ответ 8
У меня был проект, который был запущен в Objective-C и полностью изменен на Swift (новый проект, но в той же директории хранилища). Github продолжал идентифицировать его как Objective-C независимо от того, что я поместил в gitattributes. (все решения выше)
Таким образом, если джиг не работает, и вы уверены, что все проекты на одном языке - вы радикально добавили:
![enter image description here]()
Только это решило проблему :)
Ответ 9
Создайте файл с именем .gitattributes в корневую папку проекта. Добавление {file_name} linguist-generated=true
может сделать трюк. В моем случае
mvnw.cmd linguist-generated=true
mvnw linguist-generated=true
работал у меня.
Ответ 10
Решение, которое было предоставлено экспертом EamonnM, который ответил на этот вопрос выше, сработало в моем проекте, но есть две важные вещи.
-
Язык в начале второй строки его кода был языком, который вы хотите вместо языка, который вам не нравится. Не забудьте отличить это.
-
Кажется, что вы не могли ввести пробел перед *
. (Например, я должен набрать *.swift linguist-vendored=false
когда я хочу изменить свой язык на swift.)