गितुब "अपडेट को अस्वीकार कर दिया गया क्योंकि रिमोट में वह काम होता है जो आपके पास नहीं है"


176

मैंने एक नया रेपो बनाया, इसे क्लोन किया, डायरेक्टरी में फाइलें जोड़ीं, उन्हें जोड़ा add -A, प्रतिबद्ध बदलाव किए, और जब मैंने पुश करने का प्रयास किया तो मुझे git push <repo name> master"अपडेट्स रिजेक्ट कर दिए गए क्योंकि रिमोट में वह काम होता है जो आपके पास नहीं है"।

यह प्रतीत नहीं होता क्योंकि यह एक नया रेपो है और इसमें केवल एक रीडमी फ़ाइल है।

जवाबों:


308

ऐसा तब होता है जब आपने एक नए गितुब रेपो को README/ और LICENSEफ़ाइल के साथ आरंभीकृत किया हो

git remote add origin [//your github url]

//pull those changes

git pull origin master 

// or optionally, 'git pull origin master --allow-unrelated-histories' if you have initialized repo in github and also committed locally

//now, push your work to your new repo

git push origin master

अब आप अपने रिपॉजिटरी को गितुब में धकेल सकेंगे। मूल रूप से, आपको अपने काम के साथ उन नई इनिशियलाइज्ड फाइलों को मर्ज करना होगा। git pullआपके लिए भ्रूण और मर्ज। यदि आप सूट करते हैं तो आप इसे ला सकते हैं और मर्ज कर सकते हैं।


7
मैंने अधिक विस्तृत विवरण के साथ एक YouTube वीडियो बनाया और दो सुझाव दिए कि इस समस्या से पहले ही बचा जा सके।
केविन मार्खम

16
मर्ज कमांड के लिए मुझे उपयोग की आवश्यकता हैgit pull origin master --allow-unrelated-histories
लूसियानो मार्क्वेटो

मुझे "घातक: असंबंधित इतिहास के विलय से इनकार"
सेर्गी

4
@ शेरगी कोशिशgit pull origin master --allow-unrelated-histories
palerdot

101

त्रुटि संभवतः कोड की भिन्न संरचना के कारण आती है जिसे आप कर रहे हैं और जो GitHub पर मौजूद है। यह संघर्ष पैदा करता है जिसे हल किया जा सकता है

git pull

बड़े संघर्षों का समाधान:

git push

यदि आप पुष्टि करते हैं कि आपका नया कोड ठीक है तो आप इसका उपयोग कर सकते हैं:

git push -f origin master

जहां -f"बल प्रतिबद्ध" के लिए खड़ा है।


13
'गिट पुश -फ ओरिजिनल मास्टर'
सौरभ

4
git push -f आपके स्थानीय इतिहास के साथ दूरस्थ इतिहास को अधिलेखित करता है, इसका उपयोग करते समय सावधान रहें। विशेष रूप से सार्वजनिक रिपॉजिटरी पर।
आंद्रे

updates-were-rejectedयह भी होता है यदि आपने रिमोट में गिटब रेपो में परिवर्तन किया है, उदाहरण के लिए: जीथब गुई का उपयोग करके रीडमी फ़ाइल में कुछ बदलाव किए हैं। और फिर अपने नए काम को जीथब में धकेलने की कोशिश की, यह संदेश यह कहते हुए दिखाया जाएगा कि आपने रिमोट में जो बदलाव किए हैं, लेकिन यह स्थानीय रूप से मौजूद नहीं है।
डेके

13

अगर यह आपका पहला धक्का है

बस बदलो

git push <repo name> master

इसे इस तरह से बदलो!

git push -f <repo name> master

1
इस तरह की फाइलों ने शुरुआत में मूल में बनाई गई फाइलों को अलग कर दिया। बल्कि git pullदूरस्थ फ़ाइलों को प्राप्त करने और फिर अपनी प्रतिबद्धता को मर्ज करने के लिए पहले का उपयोग करें । जैसे स्वीकृत उत्तर बताता है
JayJay

@jayjaybricksoft आपकी टिप्पणी के लिए धन्यवाद। यह पहला धक्का है, इसलिए मूल फाइलों को बदलना ओके है।
माहियार


2

आपूर्ति किए गए उत्तर मेरे काम नहीं आए।

मेरे पास केवल LICENSE फाइल के साथ GitHub पर एक खाली रेपो था और स्थानीय स्तर पर एक ही प्रतिबद्ध था। क्या काम किया गया था:

$ git fetch
$ git merge --allow-unrelated-histories
Merge made by the 'recursive' strategy.
 LICENSE | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 LICENSE

इससे पहले कि mergeआप चाहते हैं:

$ git branch --set-upstream-to origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.

0

मैंने इन चरणों का पालन किया:

गुरु को खींचो:

git pull origin master

यह आपके स्थानीय रेपो को गितुब रेपो के साथ सिंक करेगा। अपनी नई फ़ाइल जोड़ें और फिर:

git add .

परिवर्तन करें:

git commit -m "adding new file  Xyz"

अंत में, मूल गुरु को धक्का दें:

git push origin master

अपने Github रेपो को रीफ्रेश करें, आपको नई जोड़ी गई फाइलें दिखाई देंगी।


0

यदि आप Visual S2019 का उपयोग कर रहे हैं, तो निम्नलिखित के रूप में दिखाए गए अनुसार एक नई स्थानीय शाखा बनाएँ, और फिर रेपो में परिवर्तन को धक्का दें VS2019 स्थानीय शाखा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.