Github меняет репозиторий на неправильный язык

Я знаю, что это не так уж важно, но мне нравится, чтобы мой Github был лингвистически разнообразным. Я написал проект на Swift, и когда я делаю коммит, он говорит, что он на Objective C.

Я думаю, это может быть связано с тем, что фреймворки Parse написаны на Objective C, и он это определяет, но есть ли способ изменить язык отображения на главной странице репозитория?


person Echizzle    schedule 11.01.2016    source источник
comment
Возможный дубликат Как изменить язык репозитория на Гитхаб?   -  person tkruse    schedule 10.01.2018


Ответы (14)


Я обнаружил, что самым простым было создать файл с именем .gitattributes в корневой папке моего репозитория и передать ему следующее содержимое:

* linguist-vendored
*.js linguist-vendored=false

Этот пример говорит github/linguist игнорировать все файлы, а затем просто смотреть на файлы .js. Мой проект https://github.com/aim12340/jQuery-Before-Ready был указан как HTML, потому что файлы примеров HTML были больше, чем файлы JS. Этот файл исправляет это для меня, и теперь он указан как JavaScript

person EamonnM    schedule 20.04.2017
comment
просто создайте новый файл .gitattributes в корневой папке репо с указанным выше содержимым, мгновенное исправление! - person Gob00st; 16.04.2018
comment
Самый превосходный. У меня был проект Scala, который был помечен как проект CSS. Фигово.;) - person Objektwerks; 15.01.2019
comment
Возможно, фиктивный комментарий, но если вам интересно, что именно делать, 1. Следуйте указаниям @Gob00st в его комментарии и 2. Замените .js расширением ваших основных языковых файлов. - person Elisabeth; 22.04.2019
comment
Большое спасибо. Я прочитал много статей, но ни одна из них не сработала для меня, кроме этой. - person Modo; 17.10.2019
comment
У меня была аналогичная проблема для моего основного проекта ASP.NET. Github подумал, что это репозиторий javascript из-за количества файлов js в папке www. Добавление файла .gitattributes с [папкой веб-проекта]/wwwroot/* исправлено. Спасибо. - person Mustafa; 07.01.2020

Как указано на странице справки GitHub

GitHub использует библиотеку Linguist с открытым исходным кодом для определения языков файлов для подсветки синтаксиса и статистики хранилища.
Некоторые файлы трудно идентифицировать, и иногда проекты содержат больше файлов библиотек и поставщиков, чем их основной код.

Поэтому вам нужно обратиться к github/linguist#troubleshooting, чтобы исправить эту ситуацию.

Проценты рассчитываются на основе байтов кода для каждого языка, как сообщает List Languages ​​API..
Если панель сообщает о языке, который вы не ожидаете:

  • Нажмите на название языка на панели статистики, чтобы увидеть список файлов, идентифицированных как этот язык.
  • Если вы видите файлы, которые вы не писали, подумайте о том, чтобы переместить их в один из пути для кода поставщика или используйте функция ручного переопределения, чтобы игнорировать их.
  • Если файлы классифицируются неправильно, найдите открытые проблемы, чтобы узнать, сообщал ли кто-либо еще об этой проблеме. . Любая информация, которую вы можете добавить, особенно ссылки на общедоступные репозитории, полезна.
  • Если нет сообщений о проблемах с этой неправильной классификацией, откройте проблему и включите ссылку на репозиторий или образец кода, который неправильно классифицируется.

Обновление от февраля 2017 г. (год спустя):

Статья "Как изменить язык репозитория в GitHub" от Моники Пауэлл

Изучив, как разрешить GitHub неправильно классифицировать язык ваших проектов, я обнаружил, что решение так же просто, как сообщить GitHub, какие файлы игнорировать.

Хотя вы по-прежнему хотите зафиксировать эти файлы на GitHub и поэтому не можете использовать .gitignore, вы можете указать лингвисту GitHub, какие файлы игнорировать в файле .gitattributes

static/* linguist-vendored

Этот однострочный файл сказал GitHub игнорировать все мои файлы в моей папке static/, где хранятся CSS и другие ресурсы для приложения Flask.

В разделе "Использование .gitattributes" показано, как помечать неправильные языки.
Например. :

Проверка кода, который вы не писали, например, библиотек JavaScript, в репозиторий git — обычная практика, но это часто завышает языковую статистику вашего проекта и даже может привести к тому, что ваш проект будет помечен как другой язык.
По умолчанию Linguist рассматривает все пути, определенные в vendor.yml, как поставщики и поэтому не включает их в языковую статистику для репозитория.

Используйте атрибут лингвист-поставщик для указания путей поставщика или поставщика.

$ cat .gitattributes
special-vendored-path/* linguist-vendored
jquery.js linguist-vendored=false
person VonC    schedule 11.01.2016
comment
Сработало для меня, хотя теперь интересно, как это может все еще работать на GitHub, если .gitattribute находится в .gitignore, поскольку GitHub явно нуждается в файле, но я больше не хочу, чтобы он был в моем репо… - person Dave Everitt; 31.05.2017
comment
.gitattributes, а не .gitattribute - person Derzu; 01.04.2018
comment
не знал, что .gitattributes существует. Спасибо +1 - person scipsycho; 27.10.2018
comment
В моем случае я хотел, чтобы README.md моего профиля GitHub отображался (поскольку это был буквально единственный файл в этом репозитории), поэтому я создал .gitattributes с: *.md liguist-detectable README.md -linguist-documentation ссылка на подробности - person Hicsy; 15.10.2020

Чтобы упростить, позвольте мне поделиться своими шагами:

  1. Измените каталог на корневую папку вашего проекта;

  2. #P3# <блочная цитата> #P4#
  3. Отредактируйте файл, следуя инструкциям библиотеки Linguist, чтобы сообщить Github, как это сделать, например:

    ви .gitатрибуты

    Использование лингвистического поставщика может позволить Github «пропустить» обнаружение для этой папки и подпапок:

    src/main/resources/static/* linguist-vendored

    Используйте атрибут language-documentation, чтобы пометить или снять отметку с путей как с документацией:

    project-docs/* linguist-documentation

    ИЛИ отметить отдельный файл, содержащий документацию

    documented_code.rb linguist-documentation=true

    Это немного странно, но вы также можете сделать -- указать Github обрабатывать некоторые файлы с определенным расширением (например, *.rb) как Java:

    *.rb linguist-language=Java

  4. Добавьте Git, зафиксируйте, а затем отправьте на Github, метка будет исправлена ​​почти сразу.

person Bright    schedule 12.10.2016
comment
У меня сработало, я добавил строки ниже в свой файл .gitattributes *.java linguist-detectable=false *.dart linguist-language=Dart *.dart linguist-detectable=true android/* linguist-vendored build/* linguist-vendored - person Chirag Savsani; 02.05.2020

Замените ваши .gitattributes этим, что реклассифицирует все файлы как Java.

 *.* linguist-language=Java

лингвист

person Sumit    schedule 18.02.2019

Создайте файл .gitattributes в корне папки. Предположим, вы хотите, чтобы язык был Java, просто скопируйте и вставьте:

*.java linguist-detectable=true
*.js linguist-detectable=false
*.html linguist-detectable=false
*.xml linguist-detectable=false

в файле .gitattributes и поместить файл в репозиторий. Обновите страницу GitHub, чтобы увидеть изменение языка.

Примечание. Таким образом, для нужного языка сделайте его истинным, а остальные — ложными. Он должен работать нормально.

person Saif Siddiqui    schedule 15.08.2019

У меня был проект, который был запущен в Objective-C и полностью изменен на Swift (новый проект, но в том же каталоге репозитория). Github продолжал идентифицировать его как Objective-C независимо от того, что я добавлял в gitattributes. (все решения выше)

Итак, если джиг встал, и вы уверены, что весь проект на одном языке - вы радикально ставите:

введите здесь описание изображения

Только это решило проблему :)

person Ethan Halprin    schedule 12.12.2018

В файле .gitattributes просто скажите Лингвисту не определять языки файлов, которые вам не нужны.

Пример игнорирования файлов Javascript.

*.js linguist-vendored
person Ramil Mammadov    schedule 25.01.2019

Если вы хотите изменить язык репозитория Laravel, добавьте следующую строку в ваш файл .gitattributes:

*.blade.php linguist-vendored

GitHub определяет блейд-файлы как html, но *.html linguist-vendored не работает.

person Slava    schedule 02.05.2020

Вы можете избежать неожиданного обнаружения языков (по расширению, подпапке проекта и т. д.), используя опцию обнаружения лингвиста github в вашем файле .gitattributes:

В языковую статистику включены только языки программирования. Языки другого типа (как определено в languages.yml ) не поддаются обнаружению, из-за чего они не включаются в языковую статистику.

Используйте атрибут linguist-detectable, чтобы пометить или снять отметку с пути как обнаруживаемого:

*.kicad_pcb linguist-detectable=true
*.sch linguist-detectable=true
tools/export_bom.py linguist-detectable=false
person Community    schedule 20.02.2019

Решение, предложенное экспертом EamonnM, ответившим на этот вопрос выше, сработало в моем проекте, но есть два существенных момента.

  1. Язык в начале второй строки его кода был языком, который вам нужен, а не языком, который вам не нравится. Не забудьте отличить его.

  2. Кажется, вы не могли ввести пробел перед *. (Например, я должен ввести *.swift linguist-vendored=false, когда я хочу изменить свой язык на быстрый.)

person fafa    schedule 21.07.2018

У меня тоже с этим проблема. Я создал .gitattributes в корне моего проекта. Я удалил .js и .cs, но .html остался. Это мои .gitattributes:

*.cs linguist-detectable=true
*.js linguist-detectable=false`
*.html linguist-detectable=false
*.xml linguist-detectable=false

Когда я добавляю * лингвист-вендор, я ничего не вижу на GitHub.

Спасибо за вашу помощь.

введите здесь описание изображения

Отвечать:

Все то же самое, .html все еще отображается

person Ivan Radunković    schedule 13.12.2019

Создайте файл с именем .gitattributes в корневой папке вашего проекта. Добавление {file_name} linguist-generated=true может помочь. В моем случае,

mvnw.cmd linguist-generated=true
mvnw linguist-generated=true

работал на меня.

person Jack    schedule 01.01.2018

Ответ довольно прост:

просто добавьте эти строки в свой терминал проекта

  1. touch .gitattributes после написания этой команды этот файл -.gitattributes- должен быть найден. Если этот файл не отображается, попробуйте отобразить скрытые файлы, чтобы найти его.
  2. *.* linguist-language=Java Замените Java на ваш целевой язык -Swift в вашем случае-
  3. git add .
  4. git commit -m "Change Tagged language from Java to Kotlin"
  5. git push Теперь после обновления страницы Github вы должны найти новое обновление.
person Mahmoud Zaher    schedule 10.02.2020

person    schedule
comment
Можете ли вы добавить некоторые пояснения к вашему оператору кода ?? - person Stephan Hogenboom; 10.01.2020