2013-12-16 4 views
8

this answer और my own question के बाद, मेरे पास एक साधारण (आशा है) प्रश्न है।क्यों गेरिट खुद ही शाखा बनाने में असमर्थ है?

मैं किसी विशेष शाखा धक्का कर रहा हूँ तो सभी आवश्यक refs ठीक से सेट के साथ,:

git checkout 82-blah-blah 
git push origin HEAD:refs/for/82-blah-blah 

मैं हमेशा क्यों मिलता है:

! [remote rejected] HEAD -> refs/for/82-blah-blah (branch 82-blah-blah not found) 

और मैं हमेशा Gerrit के यूआई में जाना है और मैन्युअल रूप से उस शाखा को बनाओ?

क्या यह एक स्पष्ट कदम नहीं है, कि गेरिट बस स्वचालित हो सकता है? या क्या मैं कुछ न कुछ भूल रहा हूं?

+0

एक वर्कअराउंड के रूप में पहले शाखा बनाने के लिए प्रारंभिक प्रत्यक्ष धक्का बनाते हैं – HiB

+0

यदि मैं ऐसा करता हूं, तो शाखा बनाई जाएगी, लेकिन परिवर्तन स्वयं (गेरिट में) ** ** नहीं होगा और मैं खो जाऊंगा एक गड़बड़, इस स्थिति को ठीक करने में असमर्थ। इन दो प्रश्नों को देखें: [एक] (http://stackoverflow.com/q/20542903/1469208) और [दो] (http://stackoverflow.com/q/20606552/1469208)। – trejder

+1

पहले बिना किसी नए बदलाव के स्थानीय शाखा बनाएं- 'गिट चेकआउट -बी मूल/मास्टर' फिर रिमोट:' गिट पुश मूल 'या जीरिट यूआई – HiB

उत्तर

1

यह सुविधा was implemented हाल ही में है और Gerrit v2.9 में उपलब्ध होगी।

+1

ओएमजी! इस तरह के बुनियादी, मूलभूत सुविधा के साथ संस्करण '2.9' तक लागू नहीं किया गया है! :] – trejder

+3

AFAICT नई शाखा निर्माण आरईएसटी और एसएसएच आदेश जो गेरिट 2.9 में उपलब्ध होंगे मूल समस्या को संबोधित नहीं करेंगे।मैन्युअल रूप से शाखाएं बनाने के केवल दो नए तरीके हैं, लेकिन चूंकि दिन एक शाखा निर्माण 'गिट पुश' के माध्यम से उपलब्ध है। मुझे @trejder की राय पर संदेह है कि यह एक "बुनियादी, मौलिक विशेषता" एक गलतफहमी से उत्पन्न होती है कि शाखा निर्माण एक आम कार्य है जो परिवर्तन को अपलोड करते समय हमेशा कम या ज्यादा किया जाता है, जब यह वास्तव में एक दुर्लभ ऑपरेशन होता है जो उपयोगकर्ता आमतौर पर ' टी करने की अनुमति नहीं है। –

+0

@ मैग्नस बैक: आप गलत हैं। इस प्रतिबद्धता समीक्षा के बाद नई feauture लक्ष्य शाखा * बनाएगी, जो कि ओपी चाहता है – mvp

17

स्वीकार्य उत्तर एक ऐसी सुविधा का जिक्र कर रहा है जो उपयोगकर्ताओं को एसएसएच का उपयोग करके शाखा बनाने की अनुमति देता है, यह सब CreateBranchCommand जोड़ता है। मूल issue request वास्तव में क्या देख सकता है कि @trejder चाहता है लेकिन कार्यान्वयन केवल एक एसएसएच कमांड के माध्यम से एक शाखा बना है।

मैं इस धारणा के तहत था कि अगर आपके पास सही संदर्भ है तो आप रेफरी/फॉर/न्यू-शाखा को दबा सकते हैं लेकिन मैं गलत था, बस इसका परीक्षण किया और यह काम नहीं करता है। यह आपको केवल नई शाखाएं बनाने की अनुमति देता है लेकिन सीधे उन्हें धक्का देता है।

git checkout master 
git push origin HEAD:new-branch 
git checkout new-branch 
git push origin HEAD:/refs/for/new-branch 
+1

मेरा जवाब गलत नहीं है, नई गेरिट सुविधा बिल्कुल वही है जो ओपी पूछ रही है। [यह सावधानीपूर्वक] पढ़ें [http://code.google.com/p/gerrit/issues/detail?id=1156): मैं वास्तव में गेरिट के साथ क्या करने में सक्षम होना चाहता हूं: 'गिट पुश मूल हेड: रेफरी/कुछ/नई शाखा के लिए 'और धक्का कोड समीक्षा के बाद एक बार नई शाखा बनाई गई है। – mvp

+2

मुझे एमवीपी से सहमत होना चाहिए। मैं वास्तव में पूछ रहा हूं, मुझे ऐसा करने के लिए यूआई का उपयोग क्यों करना है, गेरिट स्वचालित क्या कर सकता है? मान लीजिए कि मैं गिट बैश और गेरिट के यूआई दोनों में _xactly उसी शाखा name_ का उपयोग करने के लिए 'Ctrl + C',' Ctrl + V' का उपयोग कर रहा हूं, मेरे पास शाखा नाम गलत वर्तनी या उनमें से कई को बनाने का बिल्कुल मौका है, जैसा कि मेरे पास होगा, अगर गेरिट मेरे लिए उस प्रक्रिया को स्वचालित करेगी। – trejder

+3

मुझे लगता है कि यह स्पष्ट है कि ट्रेजर क्या चाहता है और मैं @ एमवीपी से सहमत हूं कि मूल समस्या अनुरोध [अंक 1156] (https://code.google.com/p/gerrit/issues/detail?id=1156) से मेल खाएगा पूछे जा रहे हैं, लेकिन इस बात का कोई सबूत नहीं है कि इस मुद्दे के लिए तय मूल रूप से अनुरोध के रूप में लागू किया गया था। जैसा कि एक और टिप्पणी में इंगित किया गया है, [52500 बदलें] (https://gerrit-review.googlesource.com/52500) केवल इस मुद्दे के अंतिम अनुच्छेद में वर्णित बैकअप योजना लागू करता है। –

0

माना कि नई शाखा "myNewBranch"

git checkout master 
git push origin HEAD:myNewBranch 

के बाद नई पुश करने के लिए कुछ परिवर्तन करने के लिए प्रतिबद्ध है:

git push origin myNewBranch 

सबसे तेज़ तरीका यह किया जाना है लगता

मेरे लिए काम करता है। लेकिन ..

पता नहीं क्यों उसके बाद और दूसरी तरफ मास्टर के लिए एक ही प्रतिबद्धता को धक्का नहीं दे सकता - अगर मैंने मास्टर में समीक्षा के लिए पीआर खोला है, तो उसी प्रतिबद्ध को "myNewBranch" पर धक्का नहीं दे सकता है। ऐसा करने के लिए पीआर को मास्टर को छोड़ना पड़ा और फिर चेरी को नई स्थानीय शाखा में प्रतिबद्धता लेनी पड़ी और फिर रिमोट "myNewBranch"

शुभकामनाएं!

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