Github muda repositório para o idioma errado

106

Sei que não é um grande negócio, mas gosto que meu Github seja linguisticamente diversificado. Escrevi um projeto em Swift e quando o envio diz que está no Objectivo C.

Acho que pode ser porque os frameworks do Parse são escritos em Objective C e detecta isso, mas há alguma maneira de alterar o idioma de exibição na página do repositório principal?

Echizzle
fonte

Respostas:

126

Achei que a coisa mais simples era criar um arquivo chamado .gitattributesna pasta raiz do meu repositório e dar a ele este conteúdo:

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

Este exemplo diz ao github / linguist para ignorar todos os arquivos e, em seguida, apenas olhar para os arquivos .js. Meu projeto https://github.com/aim12340/jQuery-Before-Ready foi listado como HTML porque os arquivos de exemplo HTML eram maiores do que os arquivos JS. Este arquivo corrige para mim e agora está listado como JavaScript

EamonnM
fonte
5
basta criar um novo arquivo .gitattributes na pasta raiz do repo com o conteúdo acima, correção instantânea!
Gob00st
Excelente. Eu tinha um projeto Scala que foi rotulado como um projeto CSS. Não é bom .;)
Objektwerks
5
Pode ser um comentário fictício, mas caso você se pergunte o que fazer exatamente, 1. Siga a orientação de @ Gob00st em seu comentário e 2. Substitua ".js" pela extensão de seus arquivos de idioma principal.
Elisabeth de
Muito obrigado. Eu li muitos artigos, mas nenhum deles funcionou para mim, exceto este.
Modo
Tive um problema semelhante para meu projeto principal ASP.NET. O Github pensou que era um repositório javascript por causa da quantidade de arquivos js na pasta www. Adicionar o arquivo .gitattributes com [webprojectfolder] / wwwroot / * linguist-vendored corrigiu o problema. Obrigado.
Mustafa
63

Conforme mencionado na página de ajuda do GitHub

O GitHub usa a biblioteca Linguist de código aberto para determinar os idiomas do arquivo para realce de sintaxe e estatísticas de repositório.
Alguns arquivos são difíceis de identificar e, às vezes, os projetos contêm mais arquivos de biblioteca e de fornecedor do que seu código principal.

Portanto, você precisa verificar com a github/linguist#troubleshootingfim de corrigir esta situação.

As porcentagens são calculadas com base nos bytes de código para cada idioma, conforme relatado pela API List Languages .
Se a barra estiver relatando um idioma que você não espera:

  • Clique no nome do idioma na barra de estatísticas para ver uma lista dos arquivos identificados como aquele idioma.
  • Se você vir arquivos que não gravou, considere mover os arquivos para um dos caminhos para o código de fornecedor ou use o recurso de substituição manual para ignorá-los.
  • Se os arquivos estiverem sendo classificados incorretamente, pesquise os problemas em aberto para ver se alguém já relatou o problema. Qualquer informação que você possa adicionar, especialmente links para repositórios públicos, é útil.
  • Se não houver problemas relatados dessa classificação incorreta, abra um problema e inclua um link para o repositório ou uma amostra do código que está sendo classificado incorretamente.

Atualização de fevereiro de 2017 (um ano depois):

O artigo " How to Change Repo Language in GitHub " de Monica Powell

Ao pesquisar como resolver GitHub classificando incorretamente a linguagem de seus projetos, descobri que a solução é tão simples quanto dizer ao GitHub quais arquivos ignorar.

Embora você ainda queira enviar esses arquivos para o GitHub e, portanto, não possa usar um, .gitignore você pode dizer ao linguista do GitHub quais arquivos devem ser ignorados em um .gitattributesarquivo

static/* linguist-vendored

Este arquivo de uma linha disse ao GitHub para ignorar todos os meus arquivos na minha static/pasta, que é onde CSS e outros ativos são armazenados para um aplicativo Flask

A seção " Usando .gitattributes" ilustra como marcar idiomas incorretos.
Por exemplo:

Verificar o código que você não escreveu, como bibliotecas JavaScript, em seu repositório git é uma prática comum, mas isso frequentemente aumenta as estatísticas de linguagem do seu projeto e pode até fazer com que seu projeto seja rotulado como outra linguagem .
Por padrão, o Linguist trata todos os caminhos definidos em vendor.ymlcomo vendidos e, portanto, não os inclui nas estatísticas de idioma de um repositório.

Use o atributo linguist-vendored para caminhos de fornecedor ou não.

$ cat .gitattributes
special-vendored-path/* linguist-vendored
jquery.js linguist-vendored=false
VonC
fonte
Funcionou para mim, embora agora esteja me perguntando como isso ainda poderia funcionar no GitHub se .gitattribute estiver em .gitignore, pois o GitHub obviamente precisa do arquivo, mas eu realmente não o quero mais no meu repositório ...
Dave Everitt
1
.gitattributes e não .gitattribute
Derzu 01 de
não sabia que atributos .git existiam. Obrigado +1
scipsycho
31

Para simplificar, deixe-me compartilhar meus passos:

  1. Mude o diretório para a pasta raiz do projeto;

  2. Crie um arquivo chamado .gitattributes usando quaisquer ferramentas de sua escolha:

    touch .gitattributes

  3. Edite o arquivo seguindo as instruções da biblioteca Linguist para informar ao Github como fazer, por exemplo:

    vi .gitattributes

    O uso de fornecedores linguísticos pode permitir que o Github "pule" a detecção desta pasta e subpastas:

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

    Use o atributo linguist-documentation para marcar ou desmarcar caminhos como documentação:

    project-docs/* linguist-documentation

    OU marque um arquivo individual contendo documentação

    documented_code.rb linguist-documentation=true

    Isso é um pouco estranho, mas você também pode fazer - para dizer ao Github para tratar alguns arquivos com uma extensão específica (por exemplo, * .rb) como Java:

    *.rb linguist-language=Java

  4. Com Git add, commit e então push para Github, o rótulo seria corrigido quase imediatamente.

Brilhante
fonte
Funcionou para mim, adicionei as linhas abaixo ao meu arquivo .gitattributes *.java linguist-detectable=false *.dart linguist-language=Dart *.dart linguist-detectable=true android/* linguist-vendored build/* linguist-vendored
Chirag Savsani
15

Substitua seus atributos .git por este, que reclassifica todos os arquivos como Java.

 *.* linguist-language=Java

linguista

Sumit
fonte
8

Crie o arquivo .gitattributes na raiz da sua pasta. Suponha que você queira que a linguagem seja Java, basta copiar e colar

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

no arquivo .gitattributes e empurre o arquivo no repo.Refresh sua página GitHub para ver a mudança de idioma.

Nota : Portanto, para o idioma desejado, torne-o verdadeiro e o outro falso. Deve funcionar bem

Saif Siddiqui
fonte
2

Eu tinha um projeto que foi iniciado em Objective-C e alterado para Swift completamente (novo projeto, mas no mesmo diretório de repositório). Github continuou identificando-o como Objective-C, não importa o que eu coloquei em gitattributes. (todas as soluções acima)

Então, se o gabarito está pronto, e você tem certeza de que todo o projeto é um idioma - você radicalmente coloca:

insira a descrição da imagem aqui

Só isso resolveu o problema :)

Ethan Halprin
fonte
2

No arquivo .gitattributes, diga ao Linguist para não determinar os idiomas do arquivo que você não deseja.

Exemplo para ignorar arquivos Javascript.

*.js linguist-vendored
Ramil Mammadov
fonte
2

Você pode evitar a detecção inesperada de idiomas (por extensão ou por subpasta do projeto, etc.) usando a opção detectável do github linguist: em seu arquivo .gitattributes :

Apenas linguagens de programação são incluídas nas estatísticas de linguagem. Idiomas de um tipo diferente (conforme definido em languages.yml) não são "detectáveis", fazendo com que não sejam incluídos nas estatísticas de idioma.

Use o linguist-detectableatributo para marcar ou desmarcar caminhos como detectáveis:

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

Se você deseja alterar o idioma do repositório Laravel, adicione a seguinte linha ao seu .gitattributesarquivo:

*.blade.php linguist-vendored

GitHub define arquivos blade como html, mas *.html linguist-vendorednão funciona.

Slava
fonte
1

A solução que foi fornecida pelo especialista EamonnM que respondeu a essa pergunta acima funcionou no meu projeto, mas há duas coisas importantes.

  1. A linguagem no início da segunda linha de seu código era a linguagem que você deseja, em vez da linguagem que você não gosta. Lembre-se de distingui-lo.

  2. Parece que você não conseguiu digitar nenhum espaço antes de *. (Por exemplo, devo digitar *.swift linguist-vendored=falsequando quiser mudar meu idioma para o rápido.)

fafa
fonte
0

Crie um arquivo chamado .gitattributes para a pasta raiz do projeto. Adicionar {file_name} linguist-generated=truepode resolver o problema. No meu caso,

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

trabalhou para mim.

Jack
fonte
0

Eu também tenho problemas com isso. Criei .gitattributes na raiz do meu projeto. Removi .js e .cs, mas .html ainda está lá. Este é o meu .gitattributes:

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

Quando adiciono * comercializado por linguista, não vejo nada no GitHub.

Obrigado pela ajuda.

insira a descrição da imagem aqui

Responda:

Ainda o mesmo, .html ainda é mostrado

Ivan Radunković
fonte
0

A resposta é bastante simples:

basta adicionar essas linhas no terminal do seu projeto

  1. touch .gitattributes depois de escrever este comando este arquivo -.gitattributes- deve ser encontrado, se este arquivo não aparecer, tente mostrar os arquivos ocultos para encontrá-lo.
  2. *.* linguist-language=Java Mude o Java com sua linguagem de destino -Swift no seu caso-
  3. git add .
  4. git commit -m "Change Tagged language from Java to Kotlin"
  5. git push Agora, depois de atualizar a página do Github, você deve encontrar a nova atualização.
Mahmoud Zaher
fonte
-1
# add this two lines 
*.* linguist-language=Swift

project-docs/* linguist-documentation
janlionly
fonte
4
Você pode adicionar alguma explicação com sua declaração de código ??
Stephan Hogenboom