2016-08-02 17 views
5

मैं my userscripts (21) के विकास को सुविधाजनक बनाने के लिए गिट का उपयोग करना चाहता हूं। इसके अलावा, मैं उन्हें गिटहब में भी होस्ट करना चाहता हूं। (विंडोज़ 10 में फ़ायरफ़ॉक्स के साथ Greasemonkey का उपयोग कर)गिट का उपयोग करके मेरी greasemonkey उपयोगकर्ता स्क्रिप्ट का प्रबंधन कैसे करें (उन्हें गिटहब में होस्ट करने के लिए)

तो, मेरा सवाल यह है कि गिटहब में होस्ट करने के लिए गिट का उपयोग करके मेरे उपयोगकर्ता लिपियों को प्रबंधित करने का सुझाया गया तरीका क्या है?

  • एक अलग फ़ोल्डर रखने (जैसे c:\my_scripts जो मेरे रेपो फ़ोल्डर हो जाएगा) मेरी userscripts फ़ाइलों की प्रतियां युक्त,
    यानी हर बार मैं अपने userscript फ़ाइलों में से एक (gm_scripts में स्थित) को बदलने
    मुझे इसे मैन्युअल रूप से gm_scripts\script_subfolder से my_scripts पर कॉपी करना होगा?

  • ही अलग फ़ोल्डर में सभी मेरे उपयोगकर्ता userscripts (मेरी रेपो फ़ोल्डर),
    है और gm_scripts फ़ोल्डर से लिंक (एक .bat फ़ाइल में mklink -symbolic links- का प्रयोग करके), जैसा कि मैंने पढ़ा है this answer
    में?

  • मेरी gm_scripts सामग्री युक्त केवल एक संग्रह बनाएं?
  • (gm_scripts अंदर, के अलावा मेरी 21 userscripts से, मैं कई अन्य लिपियों स्थापित, मैं अपने .gitignore फ़ाइल में शामिल करना होगा जो मिल गया है) या कोई बेहतर तरीका है कि मैं याद आती है?

मैं कई userscripts के दो लेखकों में से रेपोस ध्यान दिया है: @Mottie और @jerone जो अपने कई userscripts GitHub में की मेजबानी की है, फिर भी वे विभिन्न दृष्टिकोणों का पालन करें:
Mottie's userscriptsसभी में स्थित हैं रेपो के रूट फ़ोल्डर (बस .js फ़ाइलों, वहाँ कोई सबफ़ोल्डर कर रहे हैं), (screenshot)
जबकि jerone's userscripts रेपो (screenshot) में प्रत्येक स्थित हैं अपनी ही सबफ़ोल्डर में।

मेरा अनुमान है कि Mottie ही अलग फ़ोल्डर में सभी अपने userscripts (जो रेपो है), और उन्हें है जुड़ा हुआ gm_scripts फ़ोल्डर में,
जबकि jerone या तो सिर्फ एक के रूप में एक अलग फ़ोल्डर रहता है रेपो, उसकी स्क्रिप्ट की प्रतियां,
या उसके रेपो gm_scripts फ़ोल्डर
(लेकिन, jerone के .gitignore gm_folder में उन फ़ाइलों कि अनदेखा किया जाना चाहिए के लिए प्रविष्टियों, जैसे .db शामिल नहीं है, ०१२३४६४५५१ युक्त है साथ, .shm, config.xml और ऐसे। तो, मुझे यकीन नहीं है कि यह मामला है)

+1

मुझे लगता है कि सभी तीन समाधान मान्य हैं। मेरा मानना ​​है कि वास्तव में आपके द्वारा उपयोग किए जाने वाले समाधान के बारे में आपकी राय पूरी तरह से आपके लिए बेहतर काम करता है। –

+1

मैंने व्यक्तिगत रूप से gist.github.com पर Gists के रूप में अपनी उपयोगकर्ता लिपियों को रखा है। और फिर मैंने प्रत्येक गिस्ट को अलग से क्लोन किया, इसलिए मेरे पास वास्तव में प्रत्येक उपयोगकर्ता स्क्रिप्ट के लिए एक अलग गिट भंडार है लेकिन मेरे पास प्रत्येक के लिए एक पूर्ण गिटहब भंडार का ओवरहेड नहीं है। – poke

+0

@poke: एक अलग तरीके की पेशकश के लिए धन्यवाद। यह बहुत व्यावहारिक है। – darkred

उत्तर

3

मैं (ऊपर @jerone के रूप में संदर्भित उपयोगकर्ता) वास्तव में दो फ़ोल्डर्स कि मैं सिंक में रखना है: GreaseMonkey gm_scripts फ़ोल्डर और एक अलग स्थान पर जाँच-आउट repo फ़ोल्डर।

गिटहब पर वर्तमान फ़ोल्डर संरचना वहां है क्योंकि मैं ऑफ़लाइन होने पर Usercripts.org से पहले, मेरी स्क्रिप्ट बैकअप लेना चाहता था। इसलिए मैंने gm_scripts फ़ोल्डर से अपनी स्क्रिप्ट (फ़ोल्डर के साथ) की प्रतिलिपि बनाई है। इसके अलावा, मैंने कुछ @require एस पहले इस्तेमाल किया है, उन्हें अपने संबंधित फ़ोल्डर में रखते हुए।

मैंने प्रत्येक उपयोगकर्तास्क्रिप्ट के लिए गिट शाखाओं का उपयोग करने के कारण अपने gm_scripts फ़ोल्डर को गिट से लिंक नहीं किया है। नवीनतम मास्टर के साथ शाखाओं को रिबेस करने की परेशानी एक कारण है। एक और कारण यह है कि आप एक ही समय में दो फीचर शाखाओं पर काम नहीं कर सकते हैं।

फ़िक्स या नई सुविधा पर काम करते समय, मैं gm_scripts फ़ोल्डर में काम कर रहा हूं। जब मैं लाइव उपयोगकर्तास्क्रिप्ट परिवर्तनों से खुश हूं, तो मैं परिवर्तन करने से पहले अपने चेकआउट रेपो फ़ोल्डर में हुए परिवर्तनों को सिंक करने के लिए WinMerge का उपयोग करता हूं।

.gitnore फ़ाइल वहां है, क्योंकि मैंने स्क्रिप्ट को अद्यतन करने के लिए विजुअल स्टूडियो का उपयोग किया था, लेकिन मैं बहुत समय पहले Atom में बदल गया हूं।

+0

विवरण में समझाए जाने के लिए धन्यवाद कि आप अपनी उपयोगकर्ताओं के साथ गिट का उपयोग कैसे करते हैं। मैंने अपने उपयोगकर्ताओं को github ([इस repo] में (https://github.com/darkred/Userscripts)) में अपने तरीके से पोस्ट किया है, और यह वास्तव में सबसे व्यावहारिक है। – darkred

संबंधित मुद्दे