Github, depoyu yanlış dile değiştirir


107

Bunun çok büyük bir anlaşma olmadığını biliyorum ama Github'umun dilsel olarak çeşitlendirilmesini seviyorum. Swift'de bir proje yazdım ve taahhüt ettiğimde bunun Hedef C'de olduğunu söylüyor.

Bunun nedeni, Ayrıştırma çerçevelerinin Hedef C'de yazılmış olması ve bunu algılaması olabilir, ancak ana depo sayfasındaki görüntüleme dilini değiştirmenin herhangi bir yolu var mı?


Yanıtlar:


127

En basit şeyin depomun .gitattributeskök klasöründe denilen bir dosya oluşturmak ve ona şu içeriği vermek olduğunu buldum:

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

Bu örnek, github / linguist'e tüm dosyaları yoksaymasını ve ardından .js dosyalarına bakmasını söyler. Https://github.com/aim12340/jQuery-Before-Ready projem HTML olarak listelendi çünkü HTML örnek dosyaları JS dosyalarından daha büyüktü. Bu dosya benim için düzeltiyor ve şimdi JavaScript olarak listeleniyor


5
sadece yukarıdaki içeriğe sahip repo kök klasörü altında yeni bir .gitattributes dosyası oluşturun, anında düzeltme!
Gob

En mükemmel. CSS projesi olarak etiketlenmiş bir Scala projem vardı. İyi değil .;)
Objektwerks

5
Belki sahte bir yorum olabilir, ancak tam olarak ne yapacağınızı merak ediyorsanız, 1. Yorumunda @ Gob00st kılavuzunu izleyin ve 2. ".js" yi ana dil dosyalarınızın uzantısıyla değiştirin.
Elisabeth

Çok teşekkürler. Çok sayıda makaleden geçtim ama bu hariç hiçbiri benim için işe yaramadı.
Modo

ASP.NET çekirdek projem için benzer bir sorun yaşadım. Github, www klasörünün altındaki js dosyalarının miktarı nedeniyle bunun bir javascript deposu olduğunu düşünüyordu. .Gitattributes dosyasını [webprojectfolder] / wwwroot / * linguist-vendored ile eklemek sorunu çözdü. Teşekkür ederim.
Mustafa

64

GitHub yardım sayfasında belirtildiği gibi

GitHub, sözdizimi vurgulama ve depo istatistikleri için dosya dillerini belirlemek üzere açık kaynak Dilbilimci kitaplığını kullanır .
Bazı dosyaların tanımlanması zordur ve bazen projeler birincil kodlarından daha fazla kitaplık ve satıcı dosyası içerir.

github/linguist#troubleshootingBu durumu düzeltmek için kontrol etmeniz gerekiyor .

Yüzdeler, List Languages ​​API tarafından bildirilen her dil için kod baytlarına göre hesaplanır .
Çubuk beklemediğiniz bir dili bildiriyorsa:

  • Söz konusu dil olarak tanımlanan dosyaların bir listesini görmek için istatistik çubuğundaki dilin adına tıklayın.
  • Yazmadığınız dosyalar görürseniz , dosyaları satıcı kodunun yollarından birine taşımayı düşünün veya bunları yok saymak için manuel geçersiz kılmalar özelliğini kullanın.
  • Dosyalar yanlış sınıflandırılıyorsa, sorunu halihazırda başka birinin bildirip bildirmediğini görmek için açık sorunları arayın . Ekleyebileceğiniz her türlü bilgi, özellikle genel depolara bağlantılar faydalıdır.
  • Bu yanlış sınıflandırmaya ilişkin bildirilen bir sorun yoksa, bir sorun açın ve havuza bir bağlantı veya yanlış sınıflandırılan kodun bir örneğini ekleyin.

Şubat 2017'yi güncelleyin (bir yıl sonra):

Monica Powell'ın " GitHub'da Repo Dili Nasıl Değiştirilir " makalesi

Projelerinizin dilini yanlış sınıflandıran GitHub'ın nasıl çözüleceğini araştırdıktan sonra, çözümün GitHub'a hangi dosyaları göz ardı edeceğini söylemek kadar basit olduğunu öğrendim.

Hala bu dosyaları GitHub'a işlemek istiyor ve bu nedenle kullanamıyorsanız .gitignore , GitHub'ın dilbilimcisine bir .gitattributesdosyada hangi dosyaların yoksayılacağını söyleyebilirsiniz.

static/* linguist-vendored

Bu tek satırlık dosya GitHub'a, static/CSS ve diğer varlıkların bir Flask uygulaması için depolandığı klasörümdeki tüm dosyalarımı yok saymasını söyledi.

"Kullanma .gitattributes" bölümü yanlış dilleri işaretlemek için nasıl göstermek yok.
Örneğin:

JavaScript kitaplıkları gibi yazmadığınız kodu git deponuza kontrol etmek yaygın bir uygulamadır, ancak bu genellikle projenizin dil istatistiklerini şişirir ve hatta projenizin başka bir dil olarak etiketlenmesine neden olabilir .
Varsayılan olarak, Dilbilimci, içinde tanımlanan tüm yolları vendor.ymlsatıcı olarak ele alır ve bu nedenle bunları bir arşivin dil istatistiklerine dahil etmez.

Satıcı veya satıcı olmayan yollara dilbilimci-satıcı özniteliğini kullanın.

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

Benim için çalıştı şimdi bu olabilir nasıl merak rağmen hala .gitattribute .gitignore ise GitHub üzerinde çalışma GitHub açıkçası dosyayı ihtiyaç duyduğundan ama gerçekten ... artık benim repo istemiyorum
Dave Everitt

1
.gitattribute değil .gitattribute
Derzu

.git özniteliklerinin var olduğunu bilmiyordum. Teşekkürler +1
scipsycho

33

Basitleştirmek için adımlarımı paylaşmama izin verin:

  1. Dizini proje kök klasörünüze değiştirin;

  2. Seçtiğiniz whaterver araçlarını kullanarak .gitattributes adlı bir dosya oluşturun:

    touch .gitattributes

  3. Dilbilimci kitaplığı talimatlarını izleyerek dosyayı düzenleyerek Github'a nasıl yapılacağını anlatın, örneğin:

    vi .git öznitelikleri

    Dilbilimci satıcılarını kullanmak, Github'ın bu klasör ve alt klasörler için algılamayı "atlamasına" izin verebilir:

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

    Yolları belge olarak işaretlemek veya işaretini kaldırmak için dil uzmanı-dokümantasyon özniteliğini kullanın:

    project-docs/* linguist-documentation

    VEYA belgeleri içeren tek bir dosyayı işaretleyin

    documented_code.rb linguist-documentation=true

    Bu biraz tuhaf ama Github'a belirli bir uzantıya (örneğin * .rb) sahip bazı dosyaları Java olarak ele almasını söylemek için de yapabilirsiniz:

    *.rb linguist-language=Java

  4. Git ekleyin, kaydedin ve ardından Github'a gönderin, etiket neredeyse anında düzeltilir.


Benim için çalıştı, .gitattributes dosyama aşağıdaki satırları ekledim *.java linguist-detectable=false *.dart linguist-language=Dart *.dart linguist-detectable=true android/* linguist-vendored build/* linguist-vendored
Chirag Savsani

16

.Git özniteliklerinizi, tüm dosyaları Java olarak yeniden sınıflandıran bununla değiştirin .

 *.* linguist-language=Java

dilbilimci


8

Klasörünüzün kök dizininde .gitattributes dosyası oluşturun. Dilin Java olmasını istediğinizi varsayalım, sadece kopyalayıp yapıştırın

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

.gitattributes dosyasında bulun ve depodaki dosyayı itin. Dil değişikliğini görmek için GitHub sayfanızı yenileyin.

Not : Yani, istenen dil için onu doğru ve diğerlerini yanlış yapın.


2

Objective-C'de başlatılan ve tamamen Swift olarak değiştirilen bir projem vardı (yeni proje ama aynı depo dizininde). Gitattributes'e ne koysam da Github onu Objective-C olarak tanımlamaya devam etti. (yukarıdaki tüm çözümler)

Yani, jig yukarıdaysa ve tüm projenin tek bir dil olduğundan eminseniz - radikal bir şekilde şunu söylüyorsunuz:

görüntü açıklamasını buraya girin

Sadece bu sorunu çözdü :)


2

.Gitattributes dosyasında, Dilbilimciye istemediğiniz dosya dillerini belirlememesini söyleyin.

Javascript dosyalarını yok sayma örneği.

*.js linguist-vendored

2

Sen (uzantısı veya proje alt klasöründe vs yoluyla) beklenmedik diller tespit edilmemek kullanarak edebilir saptanabilir seçeneği dilbilimci GitHub: sizin de .gitattributes dosyası:

Dil istatistiklerine yalnızca programlama dilleri dahildir. Farklı bir türdeki diller (içinde tanımlandığı gibi languages.yml) "tespit edilemez", bu da onların dil istatistiklerine dahil edilmemesine neden olur.

linguist-detectableYolları algılanabilir olarak işaretlemek veya işaretini kaldırmak için özniteliği kullanın :

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

2

Laravel deposunun dilini değiştirmek istiyorsanız, aşağıdaki satırı .gitattributesdosyanıza ekleyin :

*.blade.php linguist-vendored

GitHub, blade dosyalarını html olarak tanımlar ancak *.html linguist-vendoredçalışmaz.


1

Yukarıdaki soruyu yanıtlayan uzman EamonnM'nin sunduğu çözüm projemde işe yaradı ama iki önemli şey var.

  1. Kodunun ikinci satırının başındaki dil, sevmediğiniz dil yerine istediğiniz dildir. Onu ayırt etmeyi unutma.

  2. Görünüşe göre *. (Örneğin, *.swift linguist-vendored=falsedilimi hızlı yapmak istediğimde yazmalıyım.)


1

Bununla da sorunum var. Projemin kök dizininde .gitattributes oluşturdum. .Js ve .cs dosyalarını kaldırdım, ancak .html hala orada. Bu benim .git özniteliklerim:

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

* Linguist-vendored eklediğimde GitHub'da hiçbir şey görmüyorum.

Yardımınız için teşekkürler.

görüntü açıklamasını buraya girin

Cevap:

Hala aynı, .html hala gösteriliyor


++++++++++++++++
Дмитрий Пасько

0

Proje kök klasörünüze .gitattributes adlı bir dosya oluşturun. Eklemek {file_name} linguist-generated=truehile yapabilir. Benim durumumda,

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

benim için çalıştı.


0

Cevabı oldukça basit:

sadece bu satırları proje terminalinize ekleyin

  1. touch .gitattributes Bu komutu yazdıktan sonra bu dosya -.gitattributes- bulunmalıdır, Bu dosya görünmüyorsa, bulmak için gizli dosyaları göstermeye çalışın.
  2. *.* linguist-language=Java Java'yı hedef dilinizle değiştirin - Sizin durumunuzda hızlı olun-
  3. git add .
  4. git commit -m "Change Tagged language from Java to Kotlin"
  5. git push Şimdi Github sayfasını yeniledikten sonra yeni güncellemeyi bulmalısınız.

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

project-docs/* linguist-documentation

4
Kod ifadenize biraz açıklama ekleyebilir misiniz?
Stephan Hogenboom
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.