गितुब भंडार को गलत भाषा में बदल देता है


106

मुझे पता है कि यह बहुत बड़ी बात नहीं है, लेकिन मैं अपने गिथब को भाषाई रूप से विविध बनाना पसंद करता हूं। मैंने स्विफ्ट में एक प्रोजेक्ट लिखा था और जब मैं इसे करता हूं तो कहता है कि यह ऑब्जेक्टिव सी में है।

मुझे लगता है कि ऐसा हो सकता है क्योंकि पार्स फ्रेमवर्क ऑब्जेक्टिव सी में लिखा गया है और यह पता लगाता है, लेकिन क्या मुख्य रिपॉजिटरी पेज पर डिस्प्ले लैंग्वेज को बदलने का कोई तरीका है?


जवाबों:


126

मैंने पाया कि सबसे आसान काम यह था .gitattributesकि मेरी रिपॉजिटरी के रूट फोल्डर में एक फाइल बनाई जाए , और उसे ये कंटेंट दें:

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

यह उदाहरण सभी फाइलों को नजरअंदाज करने के लिए github / भाषाविद को बताता है, फिर .js फाइलों को देखें। मेरी परियोजना https://github.com/aim12340/jQuery-Before-Ready को HTML के रूप में सूचीबद्ध किया गया था क्योंकि HTML उदाहरण फाइलें JS फाइलों से बड़ी थीं। यह फ़ाइल मेरे लिए इसे ठीक कर देती है और अब इसे जावास्क्रिप्ट के रूप में सूचीबद्ध किया गया है


5
बस ऊपर सामग्री के साथ रेपो रूट फ़ोल्डर के तहत एक नई .gitattributes फ़ाइल बनाएं, तुरंत ठीक करें!
Gob00st

सबसे श्रेष्ठ। मेरे पास एक स्काला प्रोजेक्ट था जिसे सीएसएस प्रोजेक्ट के रूप में लेबल किया गया था। अच्छा नहीं ;;)
ओब्जेकटवर्क्स

5
हो सकता है कि कोई डमी टिप्पणी करे, लेकिन आपको आश्चर्य होता है कि वास्तव में क्या करना है, 1. अपनी टिप्पणी में @ Gob00st के मार्गदर्शन का पालन करें, और अपनी मुख्य भाषा फ़ाइलों के विस्तार द्वारा 2. ".js" बदलें।
एलिजाबेथ

बहुत बहुत धन्यवाद। मैं बहुत सारे लेखों से गुज़रा लेकिन उनमें से किसी ने मेरे अलावा काम नहीं किया।
मोडो

मुझे अपने ASP.NET कोर प्रोजेक्ट के लिए इसी तरह की समस्या थी। जीथब ने सोचा कि यह www फ़ोल्डर के तहत जेएस फाइलों की मात्रा के कारण एक जावास्क्रिप्ट रेपो था। [। Webprojectfolder] / wwwroot / * के साथ फाइल .gitattributes को जोड़ते हुए इसे तय किया। धन्यवाद।
मुस्तफा

63

जैसा कि GitHub हेल्प पेज में बताया गया है

GitHub सिंटैक्स हाइलाइटिंग और रिपॉजिटरी आँकड़ों के लिए फ़ाइल भाषाओं को निर्धारित करने के लिए ओपन सोर्स लिंग्विस्ट लाइब्रेरी का उपयोग करता है ।
कुछ फ़ाइलों को पहचानना मुश्किल है, और कभी-कभी परियोजनाओं में उनके प्राथमिक कोड की तुलना में अधिक पुस्तकालय और विक्रेता फाइलें होती हैं।

तो आपको github/linguist#troubleshootingइस स्थिति को ठीक करने के लिए जांच करने की आवश्यकता है।

प्रतिशत की गणना प्रत्येक भाषा के लिए कोड के बाइट्स के आधार पर की जाती है, जैसा कि सूची भाषा एपीआई द्वारा रिपोर्ट किया गया है
यदि बार ऐसी भाषा की रिपोर्ट कर रहा है जिसकी आपको उम्मीद नहीं है:

  • उस भाषा के रूप में पहचानी जाने वाली फ़ाइलों की सूची देखने के लिए आँकड़े पट्टी में भाषा के नाम पर क्लिक करें।
  • यदि आपको ऐसी फ़ाइलें दिखाई देती हैं जो आपने नहीं लिखीं , तो फ़ाइलों को एक कोड वाले पथ में स्थानांतरित करने पर विचार करें, या उन्हें अनदेखा करने के लिए मैन्युअल ओवरराइड सुविधा का उपयोग करें।
  • यदि फ़ाइलों को मिसकॉल किया जा रहा है, तो खुले मुद्दों की तलाश करें कि क्या किसी और ने पहले ही इस मुद्दे की सूचना दी है। कोई भी जानकारी जिसे आप जोड़ सकते हैं, विशेष रूप से सार्वजनिक रिपॉजिटरी के लिंक, मददगार है।
  • यदि इस मिसकॉलिफिकेशन के कोई रिपोर्ट किए गए मुद्दे नहीं हैं, तो एक समस्या खोलें और रिपॉजिटरी या उस कोड के नमूने का लिंक शामिल करें जो मिसकॉलिफाइड हो रहा है।

अपडेट फरवरी 2017 (एक साल बाद):

मोनिका पॉवेल का लेख " हाउ टू चेंज रेपो लैंग्वेज इन गिटहब "

GitHub को हल करने के तरीके के बारे में शोध करने पर आपकी परियोजनाओं की भाषा को गलत तरीके से समझने पर मुझे पता चला कि समाधान GitHub को बताने के लिए जितना सरल है उतना ही सरल है।

जब आप अभी भी इन फ़ाइलों को GitHub के लिए कमिट करना चाहते हैं और इसलिए आप GitHub के भाषाविद् को यह नहीं .gitignore बता सकते कि कौन सी फाइल को एक .gitattributesफ़ाइल में अनदेखा करना है

static/* linguist-vendored

इस एक-लाइन फ़ाइल ने GitHub को मेरी सभी फ़ाइलों को अपने static/फ़ोल्डर में अनदेखा करने के लिए कहा था , जहाँ सीएसएस और अन्य संपत्ति फ़्लॉस ऐप के लिए संग्रहीत की जाती हैं

"का उपयोग .gitattributes" खंड वर्णन करता है कि कैसे गलत भाषाओं चिह्नित करने के लिए।
उदाहरण के लिए:

चेकिंग कोड जिसे आपने नहीं लिखा था, जैसे कि जावास्क्रिप्ट लाइब्रेरी, आपके git रेपो में एक आम बात है, लेकिन यह अक्सर आपके प्रोजेक्ट के भाषा आँकड़े को बढ़ाता है और यहां तक ​​कि आपके प्रोजेक्ट को किसी अन्य भाषा के रूप में लेबल कर सकता है
डिफ़ॉल्ट रूप से, भाषाविद् सभी पथों vendor.ymlको प्रतिशोधी के रूप में परिभाषित करते हैं और इसलिए उन्हें रिपॉजिटरी के लिए भाषा आँकड़ों में शामिल नहीं करते हैं।

विक्रेता या संयुक्त राष्ट्र-विक्रेता पथों के लिए भाषाई-वर्गीकृत विशेषता का उपयोग करें।

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

मेरे लिए काम किया, हालांकि अब सोच रहा था कि यह अभी भी GitHub पर कैसे काम कर सकता है। अगर .itattribute में है .itignore के रूप में GitHub को स्पष्ट रूप से फ़ाइल की आवश्यकता है, लेकिन मैं वास्तव में इसे अपने रेपो में किसी भी तरह से नहीं चाहता ...
डेव एवरिट

1
.itattributes and not .gitattribute
Derzu

नहीं पता था। धन्यवाद +1
scipsycho

31

इसे सरल बनाने के लिए, मुझे अपने चरण साझा करने दें:

  1. निर्देशिका को अपने प्रोजेक्ट रूट फ़ोल्डर में बदलें;

  2. अपनी पसंद के व्हाट्सएप टूल का उपयोग करके .gitattributes नामक एक फ़ाइल बनाएँ:

    स्पर्श ।सुविधाएँ

  3. उदाहरण के लिए, गितुब को कैसे करें, यह बताने के लिए भाषाविद् पुस्तकालय के निर्देशों का पालन करके फाइल को संपादित करें :

    vi .सजगत गुण

    भाषाविद-प्रयोग करें, इस फ़ोल्डर और उप-फ़ोल्डर के लिए गितुब को "छोड़" पता लगाने की अनुमति दे सकता है:

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

    दस्तावेज़ के रूप में चिह्नित या पथ चिह्नित करने के लिए भाषाई-प्रलेखन विशेषता का उपयोग करें:

    project-docs/* linguist-documentation

    या प्रलेखन युक्त एक व्यक्तिगत फ़ाइल को चिह्नित करें

    documented_code.rb linguist-documentation=true

    यह थोड़ा अजीब है लेकिन आप यह भी कर सकते हैं - जीथब को जावा के रूप में एक विशिष्ट एक्सटेंशन (उदाहरण के लिए .rb) के साथ कुछ फ़ाइलों का इलाज करने के लिए कहें:

    *.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
चिराग सवानी

15

इसके साथ अपनी .gitattributes को बदलें, जो जावा के रूप में सभी फ़ाइलों को पुनर्वर्गीकृत करता है।

 *.* linguist-language=Java

भाषाविद


8

अपने फ़ोल्डर की जड़ में .gitattributes फ़ाइल बनाएँ। मान लीजिए आप चाहते हैं कि भाषा जावा हो, बस कॉपी-पेस्ट करें

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

भाषा को परिवर्तन देखने के लिए .itattributes फ़ाइल को रिपीट करें और फ़ाइल को धक्का दें।

नोट : तो, वांछित भाषा के लिए यह सही है और अन्य गलत है। यह ठीक काम करना चाहिए


2

मेरे पास एक प्रोजेक्ट था जो ऑब्जेक्टिव-सी में शुरू किया गया था और पूरी तरह से स्विफ्ट में बदल गया (नया प्रोजेक्ट लेकिन उसी रिपॉजिटरी डायर में)। गितुब ने इसे उद्देश्य-सी के रूप में पहचानना जारी रखा, इससे कोई फर्क नहीं पड़ता कि मैंने गिटट्यूएंट में क्या रखा है। (उपरोक्त सभी समाधान)

तो, अगर जिग ऊपर है, और आपको यकीन है कि सभी परियोजना एक भाषा है - आप मौलिक रूप से डालते हैं:

यहां छवि विवरण दर्ज करें

केवल उस समस्या को ठीक किया :)


2

.Gitattributes फ़ाइल में केवल भाषाविद् को बताएं कि वे फ़ाइल भाषाएँ निर्धारित न करें जो आप नहीं चाहते हैं।

जावास्क्रिप्ट फ़ाइलों को अनदेखा करने के लिए उदाहरण।

*.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

यदि आप लारवेल भंडार की भाषा बदलना चाहते हैं, तो अपनी .gitattributesफ़ाइल में निम्न पंक्ति जोड़ें :

*.blade.php linguist-vendored

GitHub HTML के रूप में ब्लेड फ़ाइलों को परिभाषित करता है, लेकिन *.html linguist-vendoredकाम नहीं करता है।


1

विशेषज्ञ ईमोनोम द्वारा जो समाधान प्रदान किया गया था, जो इस प्रश्न का उत्तर देता है, ने मेरी परियोजना में काम किया है, लेकिन दो महत्वपूर्ण बातें हैं।

  1. उनके कोड की दूसरी पंक्ति की शुरुआत में भाषा वह भाषा थी जिसे आप नापसंद करते हैं। इसे भेद करना याद रखें।

  2. ऐसा लगता है कि आप इससे पहले कोई स्थान नहीं लिख सकते थे *। (उदाहरण के लिए, मुझे टाइप करना चाहिए *.swift linguist-vendored=falseजब मैं अपनी भाषा को तेज़ी से बदलना चाहता हूं।)


0

अपने प्रोजेक्ट रूट फ़ोल्डर में .gitattributes नामक एक फ़ाइल बनाएँ। जोड़ना {file_name} linguist-generated=trueचाल कर सकता है। मेरे मामले में,

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

मेरे लिए काम किया।


0

मुझे इससे भी समस्या है। मैंने अपनी परियोजना के मूल में .itattributes बनाया। मैंने .js और .cs को हटा दिया, लेकिन .html अभी भी है। यह मेरी .gitattributes:

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

जब मैं * भाषाविज्ञानी को जोड़ देता हूं तो मुझे GitHub पर कुछ दिखाई नहीं देता है।

आपकी सहायता के लिए धन्यवाद।

यहां छवि विवरण दर्ज करें

उत्तर:

अभी भी वही, .html अभी भी दिखाया गया है


0

जवाब बहुत आसान है:

बस अपने प्रोजेक्ट टर्मिनल में इन पंक्तियों को जोड़ें

  1. touch .gitattributes इस कमांड को लिखने के बाद इस फाइल को डाउनलोड करें। -Itattributes- को ढूंढना चाहिए, यदि यह फाइल दिखाई नहीं देती है, तो इसे खोजने के लिए छिपी हुई फाइलों को दिखाने का प्रयास करें।
  2. *.* linguist-language=Java अपनी लक्ष्य भाषा के साथ जावा बदलें
  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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.