git - विभिन्न स्थानीय गिट शाखाओं को हरोकू/मास्टर को कैसे धक्का दें




heroku git-push (6)

आपको heroku_san जांच करनी चाहिए, यह इस समस्या को काफी अच्छी तरह हल करती है।

उदाहरण के लिए, आप यह कर सकते हैं:

git checkout BRANCH
rake qa deploy

यह नए सर्वर पर विषय शाखा को तैनात करने के लिए नए हेरोोक इंस्टेंस को स्पिन करना भी आसान बनाता है:

git checkout BRANCH
# edit config/heroku.yml with new app instance and shortname
rake shortname heroku:create deploy # auto creates deploys and migrates

और यदि आप अक्सर कुछ करते हैं तो निश्चित रूप से आप सरल रेक कार्य कर सकते हैं।

हेरोकू की सभी शाखाओं को अनदेखा करने की नीति है लेकिन 'मास्टर'।

हालांकि मुझे यकीन है कि हेरोकू के डिजाइनरों के पास इस नीति के लिए उत्कृष्ट कारण हैं (मैं भंडारण और प्रदर्शन अनुकूलन के लिए अनुमान लगा रहा हूं), डेवलपर के रूप में मेरा परिणाम यह है कि जो भी स्थानीय विषय शाखा मैं काम कर रहा हूं, मुझे एक आसान तरीका चाहिए हेरोकू के मास्टर को उस स्थानीय विषय शाखा में स्विच करने के लिए और हेरोोकू पर मास्टर को ओवर-राइट करने के लिए "गिट पुश हेरोकू-एफ" करें।

Http://progit.org/book/ch9-5.html के "पुशिंग रेफस्पेक्स" अनुभाग को पढ़ने से मुझे क्या मिला

git push -f heroku local-topic-branch:refs/heads/master

मुझे वास्तव में यह पसंद है कि इसे कॉन्फ़िगरेशन फ़ाइल में सेट अप करने का एक तरीका है ताकि "गिट पुश हेरोकू" हमेशा ऊपर की ओर हो, स्थानीय-विषय-शाखा को जो भी मेरी वर्तमान शाखा के नाम से बदल दे। अगर कोई जानता है कि इसे कैसे पूरा किया जाए, तो कृपया मुझे बताएं!

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

कहने की जरूरत नहीं है, यह सब कुछ का समर्थन करने के लिए इस प्रतिबंध के बिना एक अलग रिमोट रिपोजिटरी (जैसे गिटहब) रखना भी एक अच्छा विचार होगा। मैं उसे "मूल" कहूंगा और हेरोकू के लिए "हेरोकू" का उपयोग करूंगा ताकि "गिट पुश" हमेशा मूल रूप से सबकुछ ऊपर उठाए, और "गिट पुश हेरोकू" जो भी शाखा मैं वर्तमान में हरोकू की मास्टर शाखा में डालता हूं, उसे ओवरराइट कर रहा हूं यदि आवश्यक है।

क्या यह काम करेगा?

[remote "heroku"]
    url = [email protected]:my-app.git
    push = +refs/heads/*:refs/heads/master

प्रयोग करने से पहले मैं किसी और से अनुभवी व्यक्ति से सुनना चाहता हूं, हालांकि मुझे लगता है कि मैं हरोकू पर एक डमी ऐप बना सकता हूं और उसके साथ प्रयोग कर सकता हूं।

लाने के लिए, मुझे वास्तव में परवाह नहीं है कि हेरोकू रिपोजिटरी केवल लिखने के लिए है। मेरे पास अभी भी एक अलग भंडार है, जैसे गिटहब, बैकअप और मेरे सभी कामों के क्लोनिंग के लिए।

फुटनोट: यह सवाल समान है, लेकिन हेरोकू के साथ शाखा रणनीति का उपयोग करके गुड गिट परिनियोजन के समान नहीं है ?



यह भी ध्यान रखें कि यदि आपके गिट फ्लो सिस्टम और आपकी फीचर शाखा का उपयोग किया जा सकता है

feature/mobile_additions

और एक गिट रिमोट के साथ stagingtwo कहा जाता है, तो उसकेोकू को धक्का देने के लिए आदेश होगा

git push stagingtwo feature/mobile_additions:master

विभिन्न स्थानीय गिट शाखाओं को हरोकू / मास्टर को धक्का देने के लिए सबसे सुरक्षित आदेश।

git push -f heroku branch_name:master

नोट: हालांकि, आप अन्य डेवलपर्स के धक्का के साथ संघर्ष से बचने के लिए -f, thef (बल ध्वज) का उपयोग किए बिना पुश कर सकते हैं।



वाइल्डकार्ड का उपयोग करते समय, इसे रेफस्पेक के दोनों तरफ मौजूद होना था, इसलिए +refs/heads/*:refs/heads/master रेफ +refs/heads/*:refs/heads/master काम नहीं करेगा। लेकिन आप +HEAD:refs/heads/master उपयोग कर सकते हैं +HEAD:refs/heads/master :

git config remote.heroku.push +HEAD:refs/heads/master

इसके अलावा, आप सीधे गिट पुश के साथ ऐसा कर सकते हैं:

git push heroku +HEAD:master
git push -f heroku HEAD:master




git-push