दिलचस्प पोस्ट
डेटटाइम। ट्राई पर्स सदी नियंत्रण सी # PHP और fgetcsv फ़ंक्शन का उपयोग करते हुए सीएसवी फ़ाइल से एक सरणी कैसे बनाएं भंडार के भाग के रूप में जीआईटी कॉन्फ़िग को संग्रहीत करना एनडी से 1 डी सरणियों तक मैं सी ++ 11 सीएएस के साथ एबीए काउंटर कैसे लागू कर सकता हूं? कस्टम ऐप के चलने में "ज्ञात फाइल प्रकार" खोलना – .NET पूर्ण स्थिति के भीतर पूर्ण स्थिति आईफोन एसडीके में एक साथ इशारे इशारे की पहचानकर्ता एएसपी.नेट वेब एपीआई 2: बाहरी प्रमाणीकरण सेवाओं के साथ कैसे प्रवेश करें? सफारी, आईफ़ोन और आईपैड में एचटीएमएल 5 वीडियो टैग काम नहीं कर रहा है एक अच्छा हैश फंक्शन क्या है? स्ट्रिंग PHP से पहले 3 वर्ण और अंतिम 3 वर्ण हटाएं Matplotlib पाठ आयाम asio async_write को बढ़ावा दें: कैसे async_write कॉल interleaving नहीं? अंतर्निर्मित जावास्क्रिप्ट फ़ंक्शंस के स्रोत को कैसे देखें?

गिट: सक्रिय शाखा को एक नंगे रिपॉजिटरी में बदलने का सही तरीका है?

मेरे पास एक छोटी भंडार है जो कि मेरी परियोजना के लिए केंद्रीय स्टोर के रूप में उपयोग किया जाता है सभी डेवलपर्स इसके साथ साझा करने के लिए git clone <repo> करते हैं। जब वे क्लोन करते हैं, तो उन्हें मास्टर ब्रांच का एक चेकआउट मिलता है (जब तक वे git clone -n ) क्योंकि repo.git/HEAD ref: refs/heads/master repo.git/HEAD ref: refs/heads/master , यह सक्रिय शाखा बनाने के लिए

सवाल यह है, मैं सक्रिय शाखा को ठीक से कैसे बदलूं? मैं बस सीधे repo.git/HEAD फ़ाइल को हैक कर सकता हूं, लेकिन यह बुरा और ठीक है, repo.git/HEAD लगता है।

मुझे रेपो git checkout <otherbranch> निर्देशिका में git checkout <otherbranch> करने की कोशिश की, लेकिन यह विफल रहा क्योंकि मैं एक काम के पेड़ में नहीं था।

मैंने git update-ref HEAD refs/heads/otherbranch लेकिन वह सिर्फ refs / सिर / मास्टर refs / heads / otherbranch (ठीक है, मैं एक डमी भंडार में एक है, न कि मेरा उत्पादन एक के रूप में किया है) के रूप में एक ही होना करने के लिए!

मैंने git update-ref --no-deref HEAD refs/heads/otherbranch और लगभग काम किया। उसने HEAD फाइल को अपडेट किया, लेकिन इसे refs/heads/otherbranch द्वारा निर्देशित कमिट के एसएचए 1 में सेट किया।

मैं git संस्करण 1.7.0.2.msysgit.0 साथ परीक्षण कर रहा हूँ।

मैं अनुमान लगा रहा हूं कि यह git push माध्यम से करने का कोई रास्ता नहीं है, जिससे कि आपकी डिफ़ॉल्ट शाखा बदलने के लिए सभी प्रकार की विविधताएं थोड़ा असुरक्षित (!) लगती हैं, लेकिन निश्चित रूप से यह सीधे रेपो में करने का एक बेहतर तरीका है। HEAD फ़ाइल

Solutions Collecting From Web of "गिट: सक्रिय शाखा को एक नंगे रिपॉजिटरी में बदलने का सही तरीका है?"

यदि आपके पास दूरस्थ नंगे रेपो तक पहुंच है, तो यह आलेख सुझाता है :

 git symbolic-ref HEAD refs/heads/mybranch 

जो आपके रिपॉजिटरी में हेड फ़ाइल को अपडेट करेगा ताकि इसमें शामिल हो:

 ref: refs/heads/mybranch 

जैसा कि git-symbolic-ref में दर्ज़ किया गया है


अगर आपके पास दूरस्थ रेपो तक पहुंच नहीं है, तो मेरा पिछले जवाब देखें ।


याद रखें कि git remote set-head जैसे कमांड:

  • रिमोट रेपो की डिफॉल्ट शाखा को परिवर्तित नहीं करता है
    यह आपके स्थानीय रेपो में refs/remotes/<name>/HEAD रूप में संग्रहीत दूरस्थ ट्रैकिंग शाखा में बदलाव करता है

  • HEAD ही नहीं बदलता है (फिर से, केवल refs/remotes/<name>/HEAD ), इसलिए git symbolic-ref की आवश्यकता है

तो git remote set-head यहां उत्तर नहीं है।
git symbolic-ref HEAD है, अगर आपके पास दूरस्थ रेपो तक सीधी पहुंच है

इसके अलावा, अगर आपके पास एक git remote set-head करके, नंगे रेजोजिटरी तक पहुंच नहीं है और आप कर चुके हैं

यह पिछले प्रतिक्रिया देखें

जिस शाखा को आप उपयोग करना चाहते हैं उस शाखा को HEAD संदर्भ बदलने की आवश्यकता को बदलने के लिए

पहले नारंगी रिपॉजिटरी में सभी संदर्भों को सूचीबद्ध करें

 $find ref 

फिर अपनी शाखा के संदर्भ को ढूंढें, प्रारूप निम्नानुसार होगा: refs/heads/<my_branch> तो अगले कदम वर्तमान संदर्भ की जांच करना है, बस टाइप करें:

 $git symbolic-ref HEAD 

तो आप जानते हैं कि वर्तमान शाखा कौन है तो जरूरत के अनुसार इसे अपडेट करें।

 $git sumbolic-ref HEAD ref/heads/<my_branch> 

थान्ट यह है का आनंद लें।

मेरे पास हमारे सर्वर पर एक बेजोड़ रेपो है और यह सफलतापूर्वक फ़ाइलों का उपयोग करने में सक्षम है

 git clone //server/repo/directory -b branch_name 

एक नए स्थानीय भंडार में हालांकि मैनपेज का कहना है कि यह केवल गैर-बेक रिपॉजिटरी के लिए है।

मैं आवेदन करने से पहले और बाद में दो निर्देशिकाओं की तुलना करता हूं

git symbolic-ref HEAD refs/heads/mybranch

और ऐसा प्रतीत होता है कि केवल repo.git / HEAD फ़ाइल को बदल दिया गया था, शायद यह फ़ाइल को "हैक" करने के लिए काफी सुरक्षित है।