2010-08-30 17 views
13

git push origin master एक त्रुटिमैं गिट पर धक्का नहीं दे पा रहा हूं?

'[email protected]:xyz/abc.git' करने के लिए कुछ refs पुश करने के लिए इतिहास को खो देने से रोकने में विफल रहा है पता चलता है, गैर तेजी से आगे अपडेट फिर से आगे बढ़ाने से पहले दूरस्थ परिवर्तन मर्ज को अस्वीकार कर दिया गया था। विवरण के लिए 'git push --help' के ' फास्ट-फॉरवर्ड' अनुभाग के बारे में नोट देखें।

यह क्या है? इसे कैसे पुनर्प्राप्त करें?

+2

आप "विवरण के लिए 'Git धक्का --help' के 'तेजी से आगे के बारे में नोट'" था:

git push origin master <========== On "mybranch" 

यह करें: तो बजाय इस कोशिश कर के? यह यहां पुन: उत्पन्न करने के लिए बहुत लंबा है, लेकिन यह सटीक समस्या का वर्णन करता है, साथ ही एसीआई-आर्ट आरेख –

उत्तर

28

"pushing a branch" section from GitHub help page देखें:

"गैर तेजी से आगे" त्रुटियों

समय-समय पर निपटने के साथ आपको यह त्रुटि का सामना कर सकते हैं, जबकि धक्का:

$ git push origin master 
To ../remote/ 
! [rejected]  master -> master (non-fast forward) 
error: failed to push some refs to '../remote/' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes before pushing again. See the 'non-fast forward' 
section of 'git push --help' for details. 

यह त्रुटि पहले थोड़ी जबरदस्त हो सकती है, डी ओ डर नहीं।
बस शब्दों में कहें, गिट रिमोट पर बदलाव खोने के बिना बदलाव नहीं कर सकता है, इसलिए यह पुश से इंकार कर देता है। आम तौर पर यह उसी शाखा में धक्का देने वाले दूसरे उपयोगकर्ता के कारण होता है।
आप रिमोट शाखा लाने और विलय करके या दोनों को एक साथ करने के लिए पुल का उपयोग करके इसका समाधान कर सकते हैं।

अन्य मामलों में यह त्रुटि स्थानीय स्तर पर git commit --amend या git rebase जैसे आदेशों का उपयोग करके विनाशकारी परिवर्तनों का परिणाम है।
जबकि आप पुश कमांड पर --force जोड़कर रिमोट को ओवरराइड कर सकते हैं, तो आपको केवल इतना करना चाहिए यदि आप बिल्कुल निश्चित हैं कि आप यही करना चाहते हैं। फोर्स-पुश अन्य उपयोगकर्ताओं के लिए समस्याएं पैदा कर सकता है जिन्होंने रिमोट शाखा लाई है, और इसे खराब अभ्यास माना जाता है। संदेह में, बल-धक्का मत करो।

"Note about fast-forwards" of git push पर

मोड विवरण, के रूप में टिप्पणी में Michael Mrozek द्वारा उल्लेख किया है।

3

काफी महत्वपूर्ण: यह तब भी हो सकता है जब आप जिस शाखा पर हैं (और विलय करना चाहते हैं) और शाखा अपस्ट्रीम समान नहीं है। फिर कार्य प्रवाह इस तरह दिख सकता है:

git pull --rebase    # to retrieve upstream changes, replay yours on top 
git push --dry-run --verbose origin HEAD:master # always good idea: dry-runs.. 
git push origin HEAD:master # actually push current branch head (non-master) to upstream master 
2

यदि आपको यह त्रुटि और आपकी समस्या हो रही है।Git/कॉन्फ़िग फ़ाइल तो ठीक है तो निम्न चरणों के माध्यम से जाना (इस Git रेपोस में एक submodule के साथ एक आम समस्या है - फिर से submodule dir से ऐसा कर)

  1. Git चेकआउट मास्टर
  2. Git खींच
  3. (मर्ज पृष्ठभूमि में होता है)
  4. Git धक्का
+0

मुझे यह भी यकीन नहीं है कि आप यहां क्या कहने की कोशिश कर रहे हैं? कृपया अधिक स्पष्ट रूप से समझाएं। –

+0

वह यह देखने का प्रयास कर रहा है कि क्या आप किसी शाखा से धक्का देने और संदेश अस्वीकार करने का प्रयास कर रहे हैं, चरणों का पालन करें और सब ठीक रहेगा ... यह मेरे लिए एक चैंप की तरह काम करता है ... धन्यवाद jclaan ... हाँ यह किया पृष्ठभूमि में विलय करें – zee

5

VonC के जवाब के अलावा, मामले में

आप, बौद्धिक अत्याधुनिक अपने स्थानीय,

$git push --force 

के साथ रिमोट परिवर्तनों को ओवरराइड करने के लिए।

+0

वॉनसी के जवाब के अनुसार, "जब आप पुश कमांड में --force जोड़कर रिमोट को ओवरराइड कर सकते हैं, तो आपको केवल इतना करना चाहिए यदि आप बिल्कुल निश्चित हैं कि आप यही करना चाहते हैं।" – Intrications

2

सबसे पहले तो

Git पुल मूल any_branch_name

0

मैं यह भी था धक्का खींचो और नहीं निम्नलिखित उपयोगी डला स्पष्ट रूप से कहा साथ StackOverflow पर कहीं भी मिल सकता है: Git आप धक्का नहीं दूँगी यदि आपकी कार्यरत शाखा से अलग हो गई है तो एक अलग शाखा में। एक आसान फिक्स है - बस उस शाखा पर स्विच करें जिसे आप धक्का देना चाहते हैं और अपनी कार्यशील शाखा को इसमें विलय करना चाहते हैं।

git checkout master  <========== Switch to the branch you want to push to 
git pull origin master <========== Get latest from remote repository 
git pull origin mybranch <========== Merge in changes from "mybranch" 
======== Resolve any issues ======== 
git push origin master <========== Push the merged changes 
संबंधित मुद्दे