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

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

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

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

    touch.gitattributes

  3. Отредактируйте файл, следуя инструкциям библиотеки 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

  4. 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, который ответил на этот вопрос выше, сработало в моем проекте, но есть две важные вещи.

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

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