Github เปลี่ยนที่เก็บเป็นภาษาที่ไม่ถูกต้อง


112

ฉันรู้ว่านี่ไม่ใช่เรื่องใหญ่ แต่ฉันชอบให้ Github ของฉันมีความหลากหลายทางภาษา ฉันเขียนโครงการใน Swift และเมื่อฉันยอมรับว่ามันอยู่ใน Objective C

ฉันคิดว่าอาจเป็นเพราะเฟรมเวิร์ก Parse เขียนใน Objective C และตรวจพบสิ่งนั้น แต่มีวิธีใดในการเปลี่ยนภาษาที่แสดงในหน้าที่เก็บหลักหรือไม่


อาจซ้ำกันได้ของHow to change the language of a repository on GitHub?
tkruse

คำตอบ:


129

ฉันพบว่าสิ่งที่ง่ายที่สุดคือการสร้างไฟล์ที่เรียกว่า.gitattributesในโฟลเดอร์รูทของที่เก็บของฉันและให้เนื้อหาเหล่านี้:

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

ตัวอย่างนี้บอกให้ github / linguist ละเว้นไฟล์ทั้งหมดจากนั้นดูที่ไฟล์. js โครงการของฉันhttps://github.com/aim12340/jQuery-Before-Readyถูกแสดงรายการเป็น HTML เนื่องจากไฟล์ตัวอย่าง HTML มีขนาดใหญ่กว่าไฟล์ JS ไฟล์นี้แก้ไขให้ฉันและตอนนี้แสดงเป็น JavaScript


5
เพียงสร้างไฟล์. gitattributes ใหม่ภายใต้โฟลเดอร์ root repo ที่มีเนื้อหาด้านบนแก้ไขได้ทันที!
Gob00st

ยอดเยี่ยมที่สุด ฉันมีโครงการ Scala ที่ถูกระบุว่าเป็นโครงการ CSS ไม่ดี;)
Objektwerks

5
อาจจะเป็นความคิดเห็นหลอกๆ แต่ในกรณีที่คุณสงสัยว่าต้องทำอย่างไร 1. ทำตามคำแนะนำของ @ Gob00st ในความคิดเห็นของเขาและ 2. แทนที่ ".js" ด้วยนามสกุลของไฟล์ภาษาหลักของคุณ
Elisabeth

ขอบคุณมาก. ฉันอ่านบทความมากมาย แต่ไม่มีบทความใดที่เหมาะกับฉันยกเว้นบทความนี้
Modo

ฉันมีปัญหาที่คล้ายกันสำหรับโครงการหลัก ASP.NET ของฉัน Github คิดว่าเป็น repo จาวาสคริปต์เนื่องจากมีไฟล์ js จำนวนมากในโฟลเดอร์ www การเพิ่มไฟล์. gitattributes ด้วย [webprojectfolder] / wwwroot / * linguist-vendored แก้ไขแล้ว ขอบคุณ.
มุสตาฟา

67

ตามที่ระบุไว้ในหน้าความช่วยเหลือของ GitHub

GitHub ใช้ไลบรารี Linguist แบบโอเพนซอร์สเพื่อกำหนดภาษาไฟล์สำหรับการเน้นไวยากรณ์และสถิติที่เก็บ
ไฟล์บางไฟล์ระบุได้ยากและบางครั้งโปรเจ็กต์จะมีไลบรารีและไฟล์ผู้ขายมากกว่าโค้ดหลัก

ดังนั้นคุณต้องตรวจสอบด้วยgithub/linguist#troubleshootingเพื่อแก้ไขสถานการณ์นี้

เปอร์เซ็นต์จะคำนวณตามไบต์สำหรับแต่ละภาษาตามที่รายงานโดยที่รายการภาษา API
หากแถบรายงานภาษาที่คุณไม่คาดคิด:

  • คลิกที่ชื่อภาษาในแถบสถิติเพื่อดูรายการไฟล์ที่ระบุว่าเป็นภาษานั้น
  • หากคุณเห็นไฟล์ที่คุณไม่ได้เขียนให้ลองย้ายไฟล์ไปไว้ในเส้นทางใดเส้นทางหนึ่งสำหรับรหัสที่จำหน่ายหรือใช้คุณลักษณะการลบล้างด้วยตนเองเพื่อเพิกเฉย
  • หากไฟล์ถูกจัดประเภทผิดให้ค้นหาปัญหาที่เปิดอยู่เพื่อดูว่ามีใครรายงานปัญหานี้แล้วหรือไม่ ข้อมูลใด ๆ ที่คุณสามารถเพิ่มโดยเฉพาะลิงก์ไปยังที่เก็บสาธารณะจะเป็นประโยชน์
  • หากไม่มีรายงานปัญหาเกี่ยวกับการจัดประเภทที่ไม่ถูกต้องนี้ให้เปิดปัญหาและรวมลิงก์ไปยังที่เก็บหรือตัวอย่างรหัสที่มีการจัดประเภทผิด

อัปเดตเดือนกุมภาพันธ์ 2017 (หนึ่งปีต่อมา):

บทความ " วิธีเปลี่ยนภาษา Repo ใน GitHub " จากMonica Powell

จากการค้นคว้าวิธีแก้ไข GitHub ที่ระบุภาษาของโครงการของคุณไม่ถูกต้องฉันพบว่าวิธีแก้ปัญหานั้นง่ายมากเพียงแค่บอก GitHub ว่าจะละเว้นไฟล์ใด

ในขณะที่คุณยังต้องการส่งไฟล์เหล่านี้ไปยัง GitHub ดังนั้นจึงไม่สามารถใช้ไฟล์ได้.gitignore คุณสามารถบอกนักภาษาศาสตร์ของ GitHub ว่าไฟล์ใดที่จะละเว้นใน.gitattributesไฟล์

static/* linguist-vendored

ไฟล์บรรทัดเดียวนี้บอกให้ GitHub ละเว้นไฟล์ทั้งหมดในstatic/โฟลเดอร์ของฉันซึ่งเป็นที่เก็บ CSS และทรัพย์สินอื่น ๆ สำหรับแอป Flask

ส่วน"การใช้.gitattributes"จะแสดงวิธีการทำเครื่องหมายภาษาที่ไม่ถูกต้อง
ตัวอย่างเช่น:

การตรวจสอบรหัสคุณไม่ได้เขียนเช่นห้องสมุด JavaScript, เข้า repo คอมไพล์ของคุณเป็นหลักปฏิบัติทั่วไป แต่นี้มักจะพองสถิติภาษาโครงการของคุณและอาจยังทำให้โครงการของคุณจะได้รับการระบุว่าเป็นภาษาอื่น
ตามค่าเริ่มต้น Linguist จะถือว่าเส้นทางทั้งหมดที่กำหนดไว้ในvendor.ymlเป็น vendored ดังนั้นจึงไม่รวมไว้ในสถิติภาษาสำหรับที่เก็บ

ใช้แอ็ตทริบิวต์ผู้จัดจำหน่ายด้านภาษากับเส้นทางผู้ขายหรือผู้ขาย

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

ทำงานให้ฉันแม้ตอนนี้สงสัยว่าวิธีนี้อาจยังคงทำงานใน GitHub ถ้า .gitattribute อยู่ใน .gitignore เป็น GitHub เห็นได้ชัดว่าต้องการไฟล์ แต่ฉันไม่ต้องการมันใน repo ของฉันอีกเลย ...
เดฟ Everitt

1
.gitattributes และไม่ใช่. gitattribute
Derzu

ไม่รู้ว่ามี. gitattributes อยู่ ขอบคุณ +1
scipsycho

ในกรณีของฉันฉันต้องการให้ README.md ของโปรไฟล์ GitHub ของฉันปรากฏขึ้น (เนื่องจากเป็นไฟล์เดียวใน repo นั้นอยู่แล้ว) ดังนั้นฉันจึงสร้างลิงก์. gitattributes ด้วย: *.md liguist-detectable README.md -linguist-documentation รายละเอียด
Hicsy

35

เพื่อให้ง่ายให้ฉันแบ่งปันขั้นตอนของฉัน:

  1. เปลี่ยนไดเร็กทอรีเป็นโฟลเดอร์รูทโปรเจ็กต์ของคุณ

  2. สร้างไฟล์ชื่อ. gitattributes โดยใช้ whaterver tools ที่คุณเลือก:

    สัมผัส. gitattributes

  3. แก้ไขไฟล์โดยทำตามคำแนะนำของไลบรารี Linguistเพื่อบอก Github ว่าต้องทำอย่างไรตัวอย่างเช่น:

    vi .gitattributes

    การใช้ผู้จำหน่ายภาษาศาสตร์สามารถให้ 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. เพิ่มคอมมิตแล้วดันไปที่ Gitub ป้ายกำกับจะได้รับการแก้ไขเกือบจะในทันที


ทำงานให้ฉันฉันได้เพิ่มบรรทัดด้านล่างในไฟล์. gitattributes ของฉัน *.java linguist-detectable=false *.dart linguist-language=Dart *.dart linguist-detectable=true android/* linguist-vendored build/* linguist-vendored
Chirag Savsani


10

สร้าง.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

หากคุณต้องการเปลี่ยนภาษาของที่เก็บ Laravel ให้เพิ่มบรรทัดต่อไปนี้ใน.gitattributesไฟล์ของคุณ:

*.blade.php linguist-vendored

GitHub กำหนดไฟล์เบลดเป็น html แต่ใช้*.html linguist-vendoredไม่ได้


2

คุณสามารถหลีกเลี่ยงการตรวจพบภาษาที่ไม่คาดคิด (ตามส่วนขยายหรือตามโฟลเดอร์ย่อยของโปรเจ็กต์เป็นต้น) โดยใช้ตัวเลือกที่ตรวจพบได้ใน.gitattributesไฟล์ของนักภาษาศาสตร์ github

เฉพาะภาษาโปรแกรมเท่านั้นที่รวมอยู่ในสถิติภาษา ภาษาประเภทอื่น (ตามที่กำหนดไว้ในlanguages.yml) ไม่ "ตรวจพบ" ทำให้ไม่รวมอยู่ในสถิติของภาษา

ใช้linguist-detectableแอตทริบิวต์เพื่อทำเครื่องหมายหรือยกเลิกการทำเครื่องหมายเส้นทางว่าตรวจพบได้:

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

1

วิธีแก้ปัญหาที่ได้รับจากผู้เชี่ยวชาญ EamonnM ซึ่งตอบคำถามข้างต้นนี้ใช้ได้ผลในโครงการของฉัน แต่มีสองสิ่งที่สำคัญ

  1. ภาษาที่อยู่ต้นบรรทัดที่สองของรหัสคือภาษาที่คุณต้องการแทนที่จะเป็นภาษาที่คุณไม่ชอบ อย่าลืมแยกแยะมัน

  2. ดูเหมือนว่าคุณไม่สามารถพิมพ์ช่องว่างก่อนหน้าไฟล์*. (ตัวอย่างเช่นฉันควรพิมพ์*.swift linguist-vendored=falseเมื่อต้องการเปลี่ยนภาษาให้เร็วขึ้น)


1

ฉันมีปัญหากับเรื่องนี้เช่นกัน ฉันสร้าง. gitattributes ในรูทของโปรเจ็กต์ของฉัน ฉันลบ. js และ. cs แล้ว แต่. html ยังอยู่ นี่คือ. gitattributes ของฉัน:

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

เมื่อฉันเพิ่ม * นักภาษาศาสตร์ที่ขายฉันไม่เห็นอะไรเลยใน GitHub

ขอบคุณสำหรับความช่วยเหลือของคุณ.

ป้อนคำอธิบายภาพที่นี่

ตอบ:

ยังคงเหมือนเดิม. html ยังคงแสดงอยู่


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

0

สร้างไฟล์ชื่อ. gitattributes ไปยังโฟลเดอร์รูทโปรเจ็กต์ของคุณ การเพิ่ม{file_name} linguist-generated=trueสามารถทำเคล็ดลับ ในกรณีของฉัน

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

ทำงานให้ฉัน


0

คำตอบนั้นค่อนข้างง่าย:

เพียงเพิ่มบรรทัดเหล่านี้ในเทอร์มินัลโครงการของคุณ

  1. touch .gitattributes หลังจากเขียนคำสั่งนี้แล้วควรพบไฟล์นี้ -.gitattributes- หากไฟล์นี้ไม่ปรากฏขึ้นให้ลองแสดงไฟล์ที่ซ่อนเพื่อค้นหา
  2. *.* linguist-language=Java เปลี่ยน Java ด้วยภาษาเป้าหมายของคุณ -Swift ในกรณีของคุณ -
  3. git add .
  4. git commit -m "Change Tagged language from Java to Kotlin"
  5. git push หลังจากรีเฟรชหน้า Github แล้วคุณจะพบการอัปเดตใหม่

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

project-docs/* linguist-documentation

4
คุณสามารถเพิ่มคำอธิบายด้วยคำสั่งรหัสของคุณได้หรือไม่?
Stephan Hogenboom
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.