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

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

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

15 ответов

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

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

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

Как уже упоминалось на странице справки GitHub

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

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

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

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

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

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

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

Хотя вы все еще хотите зафиксировать эти файлы в GitHub и поэтому не можете использовать .gitignore Вы можете сказать лингвисту GitHub, какие файлы игнорировать в .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

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

  1. Перейдите в корневую папку вашего проекта;

  2. Создайте файл с именем.gitattributes, используя любые инструменты по вашему выбору:

    коснуться.gitattributes

  3. Отредактируйте файл, следуя инструкциям библиотеки Linguist, чтобы сказать Github, как это сделать, например:

    vi.gitattributes

    Использование linguist-vendors может позволить Github "пропустить" обнаружение для этой папки и подпапок:

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

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

    project-docs/* linguist-documentation

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

    *.rb linguist-language=Java

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

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

 *.* linguist-language=Java

лингвист

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

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

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

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

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

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

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

*.kicad_pcb linguist-detectable=true
*.sch linguist-detectable=true
tools/export_bom.py linguist-detectable=false

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

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

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

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

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

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

*.js linguist-vendored

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

*.blade.php linguist-vendored

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

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

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

  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 вы должны найти новое обновление.
  1. Создайте файл «.gitattributes» в корневой папке.

Если вы хотите, чтобы ваш git обнаруживал только файлы .java, вы можете использовать:

      *.java linguist-detectable=true
*.* linguist-detectable=false

. _ означает, что любой другой файл не должен определяться как язык. Для тех, кто хочет, чтобы было обнаружено более 2 языков, они могут манипулировать этим файлом.

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

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

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

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

Ответ:

По-прежнему отображается.html.

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

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

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

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

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

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

# add this two lines 
*.* linguist-language=Swift

project-docs/* linguist-documentation
Другие вопросы по тегам