Github змінює сховище на неправильну мову


106

Я знаю, що це не велика справа, але мені подобається, що мій Github є мовно диверсифікованим. Я написав проект у Свіфті, і коли я його виконую, він каже, що це в «Цілі С».

Я думаю, це може бути тому, що рамки Parse написані в Objective C, і це виявляє це, але чи є спосіб змінити мову відображення на головній сторінці сховища?


Відповіді:


126

Я виявив, що найпростіше було створити файл, названий .gitattributesу кореневій папці мого сховища, і надати йому такий вміст:

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

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


5
просто створіть новий .gitattributes файл у кореневій папці repo із вмістом вище, миттєве виправлення!
Gob00st

Найкраще. У мене був проект Scala, який був позначений як проект CSS. Не добре;)
Objektwerks

5
Можливо фіктивний коментар, але якщо вам цікаво, що робити саме так, 1. Дотримуйтесь вказівок @ Gob00st у його коментарі та 2. Замініть ".js" шляхом розширення ваших основних мовних файлів.
Елізабет

Дуже дякую. Я переглянув багато статей, але жодна з них не працювала на мене, окрім цієї.
Модо

У мене була аналогічна проблема для мого основного проекту ASP.NET. Github подумав, що це репортаж у JavaScript через кількість js-файлів у папці www. Додавання .gitattributes-файлу за допомогою [webprojectfolder] / wwwroot / * лінгвіст-vendored виправлено його. Дякую.
Мустафа

63

Як зазначалося на довідковій сторінці GitHub

GitHub використовує бібліотеку лінгвістів з відкритим кодом для визначення мов файлів для виділення синтаксису та статистики сховищ.
Деякі файли важко ідентифікувати, а іноді проекти містять більше файлів бібліотек та постачальників, ніж їх основний код.

Тож вам потрібно проконсультуватися github/linguist#troubleshooting, щоб виправити цю ситуацію.

Проценти обчислюються на основі байтів коду для кожної мови, як повідомляється API Language Languages .
Якщо на панелі повідомляється мова, якої ви не очікуєте:

  • Клацніть на назві мови на панелі статистики, щоб побачити список файлів, ідентифікованих як ця мова.
  • Якщо ви бачите файли, які ви не написали, розгляньте можливість переміщення файлів в один із контурів для вендорованого коду або скористайтеся функцією ручного заміщення, щоб їх ігнорувати.
  • Якщо файли неправильно класифікуються, знайдіть відкриті проблеми, щоб побачити, чи хтось ще повідомив про проблему. Будь-яка інформація, яку ви можете додати, особливо посилання на загальнодоступні сховища, є корисною.
  • Якщо немає жодних повідомлень про цю помилкову класифікацію, відкрийте випуск і включіть посилання на сховище або зразок коду, який піддається класифікації.

Оновлення лютого 2017 року (через рік):

Стаття " Як змінити мову репо в GitHub " від Моніки Пауелл

Дослідивши, як вирішити GitHub, не підлягаючи класифікації мови ваших проектів, я з'ясував, що рішення є таким же простим, як і сказати GitHub, які файли ігнорувати.

Хоча ви все ще хочете зафіксувати ці файли для GitHub і тому не можете скористатись, .gitignore ви можете сказати лінгвісту GitHub, які файли ігнорувати у .gitattributesфайлі

static/* linguist-vendored

Цей однорядковий файл сказав GitHub ігнорувати всі мої файли в моїй static/папці, де CSS та інші активи зберігаються для програми Flask

Розділ "Використання .gitattributes" ілюструє, як маркувати неправильні мови.
Наприклад:

Перевірка коду, який ви не писали, наприклад, бібліотеки JavaScript, у свою git repo, є звичайною практикою, але це часто надуває статистику мови вашого проекту і навіть може спричинити маркування вашого проекту як іншої мови .
За замовчуванням лінгвіст розглядає всі шляхи, визначені vendor.ymlяк надані, і тому не включає їх у мовну статистику для сховища.

Використовуйте лінгвістичний атрибут для постачальників або непродажкових шляхів.

$ cat .gitattributes
special-vendored-path/* linguist-vendored
jquery.js linguist-vendored=false

Працював для мене, хоча зараз цікаво, як це все-таки може працювати на GitHub, якщо .gitattribute знаходиться у .gitignore, оскільки GitHub, очевидно, потрібен файл, але я не дуже хочу його в моєму репо ...
Дейв Еверітт

1
.gitattributes, а не .gitattribute
Дерзу

не знав, що існують. Дякую +1
scipsycho

31

Щоб зробити це просто, дозвольте мені поділитися своїми кроками:

  1. Змінити каталог у кореневій папці проекту;

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

    дотик .gitattributes

  3. Відредагуйте файл, дотримуючись інструкцій бібліотеки лінгвістів, щоб сказати Github, як це робити, наприклад:

    vi .gitattributes

    Використання лінгвістів, що надаються, може дозволити Github "пропустити" виявлення для цієї папки та підпапок:

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

    Використовуйте атрибут лінгвістичної документації для позначення або відмітки позначення контурів як документації:

    project-docs/* linguist-documentation

    АБО позначте окремий файл, що містить документацію

    documented_code.rb linguist-documentation=true

    Це трохи дивно, але ви також можете зробити це - сказати Github обробляти деякі файли із певним розширенням (наприклад, * .rb) як Java:

    *.rb linguist-language=Java

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


Працював для мене, я додав нижче рядків до мого .gitattributes файла *.java linguist-detectable=false *.dart linguist-language=Dart *.dart linguist-detectable=true android/* linguist-vendored build/* linguist-vendored
Chirag Savsani


8

Створіть .gitattributes файл у корені вашої папки. Припустимо, ви хочете, щоб мовою була Java, просто скопіюйте і вставте

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

у файлі .gitattributes та натисніть на файл у repo.Оновіть сторінку GitHub, щоб побачити мову.

Примітка . Отже, для потрібної мови зробіть це правдивим, а інші - хибними. Це повинно працювати добре


2

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

Отже, якщо джиг працює, і ви впевнені, що весь проект є однією мовою - ви радикально ставите:

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

Тільки це вирішило проблему :)


2

У файлі .gitattributes просто скажіть Linguist не визначати мови файлів, які ви не хочете.

Приклад ігнорування файлів Javascript.

*.js linguist-vendored

2

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

До мовної статистики включаються лише мови програмування. Мови іншого типу (як визначено в languages.yml) не можна «виявити», через що вони не включаються до мовної статистики.

Використовуйте linguist-detectableатрибут для позначення або відмітки позначення контурів як виявлених:

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

2

Якщо ви хочете змінити мову сховища Laravel, додайте у свій .gitattributesфайл наступний рядок :

*.blade.php linguist-vendored

GitHub визначає файли лез як HTML, але *.html linguist-vendoredне працює.


1

Рішення, яке було надано експертом EamonnM, який відповів на це питання вище, працював у моєму проекті, але є дві важливі речі.

  1. Мова на початку другого рядка його коду була мовою, яку ви хочете, а не мовою, яку ви не любите. Не забудьте розрізнити це.

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


0

Створіть файл з назвою .gitattributes до кореневої папки проекту. Додавання {file_name} linguist-generated=trueможе зробити трюк. У моєму випадку

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

працював на мене.


0

У мене теж проблеми з цим. Я створив .gitattributes в корені свого проекту. Я видалив .js та .cs, але .html все ще є. Це мій .gitattributes:

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

Коли я додаю * vendored vendored, я нічого не бачу на GitHub.

Спасибі за вашу допомогу.

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

Відповідь:

Ще те саме .html все ще відображається


0

Відповідь досить проста:

просто додайте ці рядки до терміналу проекту

  1. touch .gitattributes після написання цієї команди слід знайти цей файл -.gitattributes- Якщо цей файл не відображається, спробуйте показати приховані файли, щоб знайти його.
  2. *.* linguist-language=Java Змініть Java своєю цільовою мовою - Перемістіть у вашому випадку-
  3. git add .
  4. git commit -m "Change Tagged language from Java to Kotlin"
  5. git push Тепер після оновлення сторінки Github ви повинні знайти нове оновлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.