2013-09-02 7 views
6

मैं गीथब एपीआई से gh-pages शाखा बनाना चाहता हूं। क्या इसे करने का कोई आसान तरीका है?मैं गीथब एपीआई से अनाथ शाखा कैसे बना सकता हूं?

यदि नहीं, तो मैं गिथब एपीआई से अनाथ शाखा कैसे बनाऊंगा?

+1

कोई इतिहास वाला शाखा नहीं। वैसे ही जैसे आप कमांड लाइन पर 'गिट चेकआउट --र्फन gh-pages' टाइप करते हैं। –

उत्तर

1

आप API के Create a Reference भाग के माध्यम से एक शाखा बना सकते हैं। मुझे यकीन नहीं है, हालांकि, अगर आप उसके साथ एक अनाथ शाखा बना सकते हैं या यदि एपीआई इसे रोक देगा।

वास्तव में, यह परीक्षण कर्ल साथ काम नहीं करता:

curl -X POST -u sigmavirus24 https://api.github.com/repos/sigmavirus24/github3.py/github3.py/refs -d '{"ref":"refs/heads/orphaned"}' 
curl -X POST -u sigmavirus24 https://api.github.com/repos/sigmavirus24/github3.py/github3.py/refs -d '{"ref":"refs/heads/orphaned", "sha":""}' 

दोनों वापसी:

{"message": "Reference update failed"} 

मैं के साथ और Content-Type हैडर (-H "Content-Type: application/json") लेकिन न तो काम के बिना की कोशिश की।

उस मामूली प्रयोग से, ऐसा लगता है कि आप एपीआई के माध्यम से एक अनाथ शाखा नहीं बना सकते हैं।

+1

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

1

यह द्वारा ऐसा करना संभव है:

  1. शाखा पहले से मौजूद है चेक कि क्या
  2. यदि नहीं, तो बनाने के एक प्रतिबद्ध है कि के लिए संदर्भित करता Git के empty tree SHA
  3. फिर उस प्रतिबद्ध
  4. करने के लिए एक रेफरी बनाने

आप कैसे करना है के लिए कुछ CoffeeScript उदाहरण कोड ढूँढ सकते हैं कि https://github.com/noflo/noflo-github/blob/master/components/CreateOrphanBranch.coffee#L31

से https://github.com/the-domains/example.net/tree/branch_1403616324001

अद्यतन:

यहाँ इस तरह से बनाई गई एक ऐसी शाखा है इस विधि तभी काम करता है Git भंडार पिछले अनाथ शाखाएं हैं। यदि यह auto_init विकल्प का उपयोग करके गिटहब के एपीआई के माध्यम से बनाया गया एक नव निर्मित रेपो है, तो यह काम नहीं करेगा। मैंने इस बारे में गिटहब से संपर्क किया है।

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