2013-06-03 5 views
10

मैं गिट के लिए काफी नया हूं, और मैं पिछले 2 महीनों के लिए एक छोटी तरफ परियोजना पर काम कर रहा था और बिना किसी समस्या के बिटबकेट पर सामान दबा रहा था। कुछ दिन पहले, मैंने अपने प्रोजेक्ट फ़ोल्डर को ज़िपित किया था (क्योंकि मुझे अपने लिनक्स ओएस को पुनर्स्थापित करना पड़ा था) और अब इसे लिनक्स ओएस की पुनर्स्थापित करने के बाद इसे अनजिप कर दिया गया है।गिट ने धक्का दिया गैर-फास्ट-फॉरवर्ड

तो, अब, मैं अपने प्रोजेक्ट फ़ोल्डर के पास गया, खुशी से काम कर रखा है और अंत में क्या किया:

git add -A && git commit -m "modified code" && git push origin master 

..which क्या मैं आमतौर पर करते हैं ..

है और मैं मिलता है:

To https://[email protected]/johnsproject/proj.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to 'https://[email protected]/johnsproject/proj.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. 

मैंने कुछ SO प्रश्नों पर एक नज़र डाली है जहां वे एक बल ध्वज -f का उपयोग करने का सुझाव देते हैं - लेकिन मुझे यह सुनिश्चित नहीं है कि मुझे यह करना चाहिए।

p.s: मैं मास्टर शाखा में हूं - जो मेरे रेपो पर only शाखा है।

अगर कोई मुझे सही दिशा में इंगित कर सकता है तो वास्तव में सराहना करेंगे।

धन्यवाद।

+0

'रिमोट चेंज मर्ज करें (उदा।' गिट पुल ') संकेत: दोबारा धक्का देने से पहले।' क्या आपने खींचने की कोशिश की? – Bob

+0

मैंने यह कोशिश की, लेकिन मुझे '* शाखा मास्टर -> FETCH_HEAD 74f5f2e..06e5112 त्रुटि अपडेट कर रहा है: निम्न फ़ाइलों में आपके स्थानीय परिवर्तन विलय से ओवरराइट किए जाएंगे: कृपया, अपने परिवर्तन करें या विलय करने से पहले उन्हें रोक दें । – JohnJ

+0

ठीक है) फिर आप परिवर्तन करते हैं और फिर से 'गीट पुल' चलाते हैं – Bob

उत्तर

14

केन्द्रीय भंडार में बदलाव हैं जो आपको धक्का देने से पहले खींचना चाहिए।

git add -A 
git commit -m "my local changes" 
git pull 

किसी भी विवाद को हल करें। फिर

git push 

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

git clone https://[email protected]/johnsproject/proj.git new_repo_dir 
+0

जब मैं गिट पुल करता हूं, मुझे लगता है कि मैं * * शाखा मास्टर -> FETCH_HEAD 74f5f2e..06e5112 त्रुटि अपडेट कर रहा हूं: निम्न स्थानीय फ़ाइलों में आपके स्थानीय परिवर्तन विलय से ओवरराइट किया जाएगा: कृपया, अपने परिवर्तनों को प्रतिबद्ध करें या विलय करने से पहले उन्हें छीन लें। – JohnJ

+0

@JohnJ ठीक है, सलाह का पालन करें। पहले अपने स्थानीय संशोधन प्रतिबद्ध करें। फिर 'गिट पुल' और किसी भी विवाद को हल करें। –

8

कर प्रयास करें

git pull origin master 
git add -A 
git commit -m "modified code" 
git push origin master 

आपकी स्थानीय भंडार दूरस्थ भंडार के साथ समन्वयित होने की संभावना है।

+0

उदाहरण के साथ कोशिश कर रहा है - एक दुःस्वप्न का बिट लेकिन अनिवार्य रूप से ग्रहण की गिट सिंक्रनाइज़ेशन स्क्रीन पुरानी पुरानी विलय विवादों को प्रदर्शित करती रही है। मुझे रुकना पड़ा और फिर से शुरू करना पड़ा और अचानक मेरी समस्याओं का हल हो गया। FWIW। – Adam

4

मुझे एक ही समस्या थी। मैंने git push -f कमांड का उपयोग करके तय किया जो अद्यतन को मजबूर करता है।

+0

इस समाधान के संबंध में, यदि आपके पास कोई नई फाइलें हैं जिन्हें आपने स्थानीय रूप से खींच नहीं लिया है, तो यह प्रक्रिया उन्हें हटा देगी। – zinon

+0

यदि आप सुनिश्चित नहीं हैं कि आप क्या धक्का दे रहे हैं तो कोई अच्छा समाधान नहीं है। – skyrocker

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