full - integrate git bash with visual studio code




प्रारंभिक गिट प्रतिबद्ध कैसे वापस करें? (5)

आप HEAD को हटा सकते हैं और अपने भंडार को एक नए राज्य में पुनर्स्थापित कर सकते हैं, जहां आप एक नई प्रारंभिक प्रतिबद्धता बना सकते हैं:

git update-ref -d HEAD

एक नई प्रतिबद्धता बनाने के बाद, यदि आप पहले ही रिमोट पर धकेल चुके हैं, तो आपको पिछली प्रारंभिक प्रतिबद्धता को ओवरराइट करने के लिए इसे दूरस्थ पर मजबूर करने की आवश्यकता होगी:

git push --force origin

मैं पहली बार एक गिट भंडार करने के लिए प्रतिबद्ध; मैं फिर प्रतिबद्धता पर पछतावा करता हूं और इसे वापस करना चाहता हूं। मैं कोशिश करूँगा

# git reset --hard HEAD~1

मुझे यह संदेश मिलता है:

fatal: ambiguous argument 'HEAD~1': unknown revision or path not in the working tree.

यह प्रतिबद्धता भंडार की पहली प्रतिबद्धता है। गिट की प्रारंभिक प्रतिबद्धता को पूर्ववत करने का कोई विचार?


आप नहीं कर सकते इसलिए:

rm -rf .git/
git init
git add -A
git commit -m 'Your new commit message'

प्रतिबद्धता को वापस करने के लिए आपको बस इतना करना है।

git revert {commit_id}'

फिर इसे धक्का दें

git push origin -f

यह प्रश्न इस ब्लॉग पोस्ट से जुड़ा था और गिट के नए संस्करणों के लिए वैकल्पिक समाधान प्रस्तावित किया गया था:

git branch -m master old_master
git checkout --orphan master
git branch -D old_master

यह समाधान मानता है कि:

  1. आपके master शाखा पर आपके पास केवल एक ही प्रतिबद्धता है
  2. old_master नामक कोई शाखा नहीं है इसलिए मैं उस नाम का उपयोग करने के लिए स्वतंत्र हूं

यह मौजूदा शाखा का नाम old_master बदल देगा और एक नया, अनाथ, शाखा master (जैसे इसे नए भंडारों के लिए बनाया गया है) old_master जिसके बाद आप old_master को स्वतंत्र रूप से हटा सकते हैं ... या नहीं। आप पर निर्भर करता है।

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


गिट रीसेट - बदलाव करें, फिर करें

git add -A
git commit --amend --no-edit 

या

git add -A
git commit --amend -m "commit_message"

और फिर

git push origin master --force

--force उस प्रतिबद्धता को फिर से लिख देगा जो आपने पहले चरण में रीसेट कर दिया है।

ऐसा मत करो, क्योंकि आप विशेष रूप से वीसीएस सिस्टम और गिट के पूरे विचार के खिलाफ जा रहे हैं। नई बनाने और अनियंत्रित शाखा को हटाने का एकमात्र अच्छा तरीका है। जानकारी के लिए git help branch देखें।





git