Github mengubah repositori ke bahasa yang salah


106

Saya tahu ini bukan masalah besar, tetapi saya suka Github saya terdiversifikasi secara linguistik. Saya menulis sebuah proyek di Swift dan ketika saya berkomitmen, itu tertulis di Objective C.

Saya pikir itu mungkin karena kerangka kerja Parse ditulis di Objective C dan mendeteksi itu, tetapi adakah cara untuk mengubah bahasa tampilan di halaman repositori utama?


Jawaban:


126

Saya menemukan hal yang paling sederhana adalah membuat file yang disebut .gitattributesdi folder root repositori saya, dan memberikannya konten ini:

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

Contoh ini memberi tahu github / linguist untuk mengabaikan semua file, lalu lihat saja file .js. Proyek saya https://github.com/aim12340/jQuery-Before-Ready terdaftar sebagai HTML karena file contoh HTML lebih besar dari file JS. File ini memperbaikinya untuk saya dan sekarang terdaftar sebagai JavaScript


5
cukup buat file .gitattributes baru di bawah folder root repo dengan konten di atas, perbaiki instan!
Gob00st

Sangat bagus. Saya memiliki proyek Scala yang diberi label sebagai proyek CSS. Tidak bagus .;)
Objektwerks

5
Mungkin komentar tiruan, tetapi jika Anda bertanya-tanya apa yang harus dilakukan, 1. Ikuti panduan @ Gob00st dalam komentarnya, dan 2. Ganti ".js" dengan ekstensi file bahasa utama Anda.
Elisabeth

Terima kasih banyak. Saya membaca banyak artikel tetapi tidak ada yang berhasil untuk saya kecuali yang ini.
Modo

Saya memiliki masalah serupa untuk proyek inti ASP.NET saya. Github mengira itu adalah repo javascript karena jumlah file js di bawah folder www. Menambahkan file .gitattributes dengan [webprojectfolder] / wwwroot / * linguist-vendored memperbaikinya. Terima kasih.
Mustafa

63

Seperti yang disebutkan di halaman bantuan GitHub

GitHub menggunakan pustaka Linguist open source untuk menentukan bahasa file untuk penyorotan sintaks dan statistik repositori.
Beberapa file sulit diidentifikasi, dan terkadang project berisi lebih banyak file library dan vendor daripada kode utamanya.

Jadi, Anda perlu memeriksa github/linguist#troubleshootinguntuk memperbaiki situasi ini.

Persentase dihitung berdasarkan byte kode untuk setiap bahasa seperti yang dilaporkan oleh API Bahasa Daftar .
Jika bilah melaporkan bahasa yang tidak Anda harapkan:

  • Klik pada nama bahasa di bilah statistik untuk melihat daftar file yang diidentifikasi sebagai bahasa itu.
  • Jika Anda melihat file yang tidak Anda tulis, pertimbangkan untuk memindahkan file ke salah satu jalur untuk kode vendor , atau gunakan fitur penggantian manual untuk mengabaikannya.
  • Jika file salah diklasifikasikan, cari masalah terbuka untuk melihat apakah ada orang lain yang telah melaporkan masalah tersebut. Informasi apa pun yang dapat Anda tambahkan, terutama tautan ke repositori publik, sangat membantu.
  • Jika tidak ada masalah yang dilaporkan dari kesalahan klasifikasi ini, buka masalah dan sertakan link ke repositori atau contoh kode yang salah diklasifikasikan.

Perbarui Februari 2017 (satu tahun kemudian):

Artikel " Bagaimana Mengubah Bahasa Repo di GitHub " dari Monica Powell

Setelah meneliti cara menyelesaikan GitHub yang salah mengklasifikasikan bahasa proyek Anda, saya menemukan solusinya sesederhana memberi tahu GitHub file mana yang harus diabaikan.

Meskipun Anda masih ingin memasukkan file-file ini ke GitHub dan karena itu tidak dapat menggunakan, .gitignore Anda dapat memberi tahu ahli bahasa GitHub file mana yang harus diabaikan dalam sebuah .gitattributesfile

static/* linguist-vendored

File satu baris ini memberi tahu GitHub untuk mengabaikan semua file saya di static/folder saya yang merupakan tempat penyimpanan CSS dan aset lainnya untuk aplikasi Flask

Bagian "Menggunakan .gitattributes" menggambarkan cara menandai bahasa yang salah.
Misalnya:

Memeriksa kode yang tidak Anda tulis, seperti pustaka JavaScript, ke dalam git repo Anda adalah praktik yang umum, tetapi ini sering kali meningkatkan statistik bahasa proyek Anda dan bahkan dapat menyebabkan proyek Anda diberi label sebagai bahasa lain .
Secara default, Ahli Bahasa memperlakukan semua jalur yang didefinisikan vendor.ymlsebagai berjenjang dan oleh karena itu tidak menyertakannya dalam statistik bahasa untuk repositori.

Gunakan atribut linguist-vendored ke vendor atau jalur un-vendor.

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

Berhasil untuk saya, meskipun sekarang bertanya-tanya bagaimana ini masih bisa berfungsi di GitHub jika .gitattribute ada di .gitignore karena GitHub jelas membutuhkan file itu tetapi saya tidak benar-benar menginginkannya di repo saya lagi ...
Dave Everitt

1
.gitattributes dan bukan .gitattribute
Derzu

tidak tahu ada .gitattributes. Terima kasih +1
scipsycho

31

Untuk membuatnya sederhana, izinkan saya membagikan langkah saya:

  1. Ubah direktori ke folder root proyek Anda;

  2. Buat file bernama .gitattributes menggunakan alat apa pun pilihan Anda:

    sentuh .gitattributes

  3. Edit file dengan mengikuti instruksi Linguist library untuk memberi tahu Github bagaimana melakukannya, misalnya:

    vi .gitattributes

    Gunakan linguist-vendored dapat membiarkan Github "melewati" deteksi untuk folder dan sub-folder ini:

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

    Gunakan atribut linguis-dokumentasi untuk menandai atau menghapus tanda jalur sebagai dokumentasi:

    project-docs/* linguist-documentation

    ATAU tandai file individu yang berisi dokumentasi

    documented_code.rb linguist-documentation=true

    Ini agak aneh tetapi Anda juga dapat melakukannya - untuk memberi tahu Github agar memperlakukan beberapa file dengan ekstensi tertentu (misalnya * .rb) sebagai Java:

    *.rb linguist-language=Java

  4. Git add, commit dan kemudian dorong ke Github, label akan segera diperbaiki.


Berhasil untuk saya, saya telah menambahkan baris di bawah ini ke file .gitattributes saya *.java linguist-detectable=false *.dart linguist-language=Dart *.dart linguist-detectable=true android/* linguist-vendored build/* linguist-vendored
Chirag Savsani

15

Ganti .gitattributes Anda dengan ini, yang mengklasifikasikan ulang semua file sebagai Java.

 *.* linguist-language=Java

ahli bahasa


8

Buat file .gitattributes di root folder Anda. Misalkan Anda ingin bahasanya Java, cukup salin-tempel

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

di file .gitattributes dan masukkan file ke repo. Segarkan halaman GitHub Anda untuk melihat perubahan bahasa.

Catatan : Jadi, untuk bahasa yang diinginkan buatlah itu benar dan yang lainnya salah. Itu akan bekerja dengan baik


2

Saya memiliki proyek yang dimulai di Objective-C dan diubah menjadi Swift sepenuhnya (proyek baru tetapi dalam direktori repositori yang sama). Github terus mengidentifikasinya sebagai Objective-C tidak peduli apa yang telah saya masukkan ke dalam gitattributes. (semua solusi di atas)

Jadi, jika jig sudah habis, dan Anda yakin semua proyek adalah satu bahasa - Anda secara radikal meletakkan:

masukkan deskripsi gambar di sini

Hanya itu yang memperbaiki masalah :)


2

Dalam file .gitattributes katakan saja Linguist tidak menentukan bahasa file yang tidak Anda inginkan.

Contoh untuk mengabaikan file Javascript.

*.js linguist-vendored

2

Anda dapat menghindari deteksi bahasa yang tidak terduga (dengan ekstensi, atau dengan subfolder proyek, dll.) Dengan menggunakan opsi yang dapat dideteksi ahli bahasa github: di file .gitattributes Anda :

Hanya bahasa pemrograman yang termasuk dalam statistik bahasa. Bahasa dari jenis yang berbeda (seperti yang didefinisikan di languages.yml) tidak "terdeteksi" sehingga tidak disertakan dalam statistik bahasa.

Gunakan linguist-detectableatribut untuk menandai atau menghapus tanda jalur sebagai dapat dideteksi:

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

2

Jika Anda ingin mengubah bahasa repositori Laravel, maka tambahkan baris berikut ke .gitattributesfile Anda :

*.blade.php linguist-vendored

GitHub mendefinisikan file blade sebagai html, tetapi *.html linguist-vendoredtidak berfungsi.


1

Solusi yang diberikan oleh pakar EamonnM yang menjawab pertanyaan di atas berfungsi dalam proyek saya, tetapi ada dua hal penting.

  1. Bahasa di awal baris kedua kodenya adalah bahasa yang Anda inginkan, bukan bahasa yang tidak Anda sukai. Ingatlah untuk membedakannya.

  2. Tampaknya Anda tidak dapat mengetik spasi sebelum *. (Misalnya, saya harus mengetik *.swift linguist-vendored=falseketika saya ingin mengubah bahasa saya menjadi cepat.)


0

Buat file bernama .gitattributes ke folder root proyek Anda. Menambahkan {file_name} linguist-generated=truebisa melakukan triknya. Dalam kasus saya,

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

bekerja untuk saya.


0

Saya juga punya masalah dengan ini. Saya membuat .gitattributes di root proyek saya. Saya menghapus .js dan .cs, tetapi .html masih ada. Ini adalah .gitattributes saya:

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

Ketika saya menambahkan * linguist-vendored, saya tidak melihat apa pun di GitHub.

Terima kasih atas bantuan Anda.

masukkan deskripsi gambar di sini

Menjawab:

Masih sama, .html masih ditampilkan


0

Jawabannya cukup sederhana:

cukup tambahkan baris ini di terminal proyek Anda

  1. touch .gitattributes setelah menulis perintah ini, file ini -.gitattributes- harus ditemukan, Jika file ini tidak muncul, coba tampilkan file tersembunyi untuk menemukannya.
  2. *.* linguist-language=Java Ubah Java dengan bahasa target Anda -Swift dalam kasus Anda-
  3. git add .
  4. git commit -m "Change Tagged language from Java to Kotlin"
  5. git push Sekarang setelah menyegarkan halaman Github, Anda akan menemukan pembaruan baru.

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

project-docs/* linguist-documentation

4
Bisakah Anda menambahkan penjelasan dengan pernyataan kode Anda ??
Stephan Hogenboom
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.