git - गिट पुल को पूर्ववत करें, पुराने राज्य में रिपो कैसे लाएं




version-control git-merge (5)

क्या गिट पुल को वापस या पूर्ववत करने का कोई तरीका है ताकि मेरा स्रोत / रिपोज पुरानी स्थिति में आएगा जो गिट खींचने से पहले था? मैं ऐसा करना चाहता हूं क्योंकि यह कुछ फाइलों को विलय कर रहा है जो मैं ऐसा नहीं करना चाहता था, लेकिन केवल अन्य शेष फाइलों को मर्ज करें। तो, मैं उन फ़ाइलों को वापस प्राप्त करना चाहता हूं, क्या यह संभव है? धन्यवाद :)

संपादित करें मैं स्पष्टीकरण के लिए गिट विलय पूर्ववत करना चाहता हूं। कुछ जवाब देखने के बाद, मैंने यह किया

git reflog
bb3139b... [email protected]{0}: pull : Fast forward
01b34fa... [email protected]{1}: clone: from ...name...

किया करू अब ? git reset --hard करना - git reset --hard ठीक है? मैं इसे फिर से पेंच नहीं करना चाहता, इसलिए विस्तृत चरणों के लिए पूछना?


आप git reset --hard ORIG_HEAD कर सकते हैं - git reset --hard ORIG_HEAD

चूंकि "खींचें" या "मर्ज करें" उन क्रियाओं को करने से पहले ORIG_HEAD को वर्तमान स्थिति सेट करें।


जेकेपी के जवाब के समान, लेकिन यहां पूर्ण आदेश है:

git reset --hard a0d3fe6

जहां a0d3fe6 कर कर पाया जाता है

git reflog

और उस बिंदु को देखकर जिस पर आप पूर्ववत करना चाहते हैं।


यदि आपके पास गिटक है ("gitk --all को अपने गिट कमांड लाइन से" चलाने का प्रयास करें), यह आसान है। बस इसे चलाएं, उस प्रतिबद्धता का चयन करें जिसे आप रोलबैक करना चाहते हैं (राइट-क्लिक करें), और "यहां मास्टर शाखा रीसेट करें" का चयन करें। यदि आपके पास कोई असामान्य परिवर्तन नहीं है, तो "हार्ड" विकल्प चुना गया है।


यह पहले उपयोग करता है: git reflog

अपने प्रीवियस राज्य के अपने एसएचए को ढूंढें और बनाएं (HEAD @ {1} एक उदाहरण है)

git reset --hard [email protected]{1}

git pull दो चीजें करेगा: यह एक git fetch और फिर एक git merge जहां यह आपकी कॉन्फ़िगरेशन में विलय करने के लिए सेट की गई शाखाओं को विलय करता है।

तो आप जो करना चाहते हैं वह विलय को पूर्ववत करना है (fetch को पूर्ववत करना बहुत समझ में नहीं आता है और आवश्यक नहीं होना चाहिए)।

ऐसा करने के लिए आप पिछली स्थिति में रीसेट करने के लिए git reset --hard का उपयोग करने का प्रयास कर सकते हैं। पिछले राज्य के SHA-1 को खोजने के लिए git-reflog कमांड का उपयोग करें और फिर इसे रीसेट करें।

चेतावनी : git reset --hard सभी असामान्य परिवर्तनों को हटा देता है।





git-merge