2012-06-08 18 views
7

मैं हेरोकू का उपयोग कर रहा हूं और एक रेल ऐप है जो स्थिर है (उत्पादन एनवी), इसलिए मैं कुछ नया बनाना चाहता हूं जहां मेरे पास गुणवत्ता आश्वासन env हो सकता है जहां मैं देख सकता हूं कि परिवर्तन कैसे काम करेंगे हमेशा मेरे उत्पादन ऐप को दबाए बिना हेरोकू (साथ ही रिलीज के लिए समेकित वृद्धि) पर।गिट त्रुटियां जब हेरोोकू पर धक्का दे रहा है

तो मैंने जो किया वह एक नया हेरोोक ऐप बना था, और स्थानीय रूप से एक नई शाखा भी बना रहा था (देव)। मेरा इरादा अपने नए हेरोोक्यू क्यूए ऐप पर बदलाव का परीक्षण करने के बाद स्थानीय स्तर पर मास्टर को विलय करना था, और फिर मेरी मास्टर शाखा से हेरोकू उत्पादन को धक्का देना था।

मेरा दृष्टिकोण मेरे परिदृश्य के साथ एक बुरा हो सकता है, मैं एक नौसिखिया हूं, इसलिए यह करने के लिए यह मेरा सबसे अच्छा अनुमान था।

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

Pushing to [email protected]:foobar/QA.git 
To [email protected]:foobar/QA.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]:foobar/QA.git' 
hint: Updates were rejected because the tip of your current branch is behind 
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') 
hint: before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

कर सकते हैं कृपया मुझे यह जानने में मदद करें कि मैं क्या कर रहा हूं - या तो मेरे वातावरण या गिट के साथ? धन्यवाद।

+0

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

उत्तर

20

हेरोकू ऐप्स केवल ऐप रिपोजिटरी (हेरोोकू के लिए स्थानीय) की मास्टर शाखा से बाहर निकलते हैं। यदि आप हेरोोकू में एक शाखा तैनात करना चाहते हैं जो आपके स्थानीय रेपो की मास्टर शाखा नहीं है, तो आपको इसे निर्दिष्ट करने की आवश्यकता है। आपके मामले में यह git push qa-remote dev:master की तरह कुछ होगा (रिमोट के वास्तविक नाम के साथ क्यूए-रिमोट को अपने क्यूए ऐप पर प्रतिस्थापित करें), जो कहता है कि मेरी स्थानीय देव शाखा को क्यू-रिमोट पर मास्टर शाखा में धक्का दें।

जब आप पहली बार ऐसा करते हैं, तो आपको धक्का (गैर-फास्ट-फॉरवर्ड) बल देने के लिए -f ध्वज जोड़ने की आवश्यकता होगी। इसके बाद आप -f ध्वज के बिना धक्का दे सकते हैं, जब तक आपकी स्थानीय शाखा अद्यतित हो।

+0

वही जो मैं खोज रहा था, धन्यवाद! – yellowreign

22

-ff (तेजी से आगे) के विकल्प के साथ धक्का प्रयास करें: git push heroku master -ff (Heroku का वास्तविक नाम के साथ बदलें heroku दूरस्थ)।

+1

ऐसा लगता है कि एक बेहतर तरीका होना चाहिए। चूंकि कई डेवलपर्स ऐप पर काम कर रहे हैं, अगर बेहतर सेट-अप या तेजी से आगे की तुलना में ऐसा करने का दूसरा तरीका है, तो मुझे लगता है कि यह बेहतर होगा। – yellowreign

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