with - एक सफल "git चेरी-पिक" को पूर्ववत् कैसे करें?




integrate git bash with visual studio code (5)

एक स्थानीय रेपो पर, मैंने बिना किसी संघर्ष या समस्याओं के बस git cherry-pick SHA निष्पादित किया है। मुझे तब एहसास हुआ कि मैं वह नहीं करना चाहता जो मैंने अभी किया है। मैंने इसे कहीं धकेला नहीं है।

मैं इस चेरी पिक को कैसे निकाल सकता हूं?

मैं यह जानना चाहूंगा कि क्या ऐसा करने का कोई तरीका है:

  • जब मेरे पास अन्य स्थानीय परिवर्तन होंगे
  • जब मेरे पास कोई अन्य स्थानीय परिवर्तन नहीं है

यदि संभव हो तो दोनों मामलों के लिए एक आदेश के साथ अधिमानतः।


git चेरी-पिक --abort

आपका उद्धारकर्ता है


अपनी अंतिम प्रतिबद्ध को पूर्ववत करने के लिए, बस git reset --hard HEAD~

संपादित करें : यह उत्तर उस प्रश्न के पुराने संस्करण पर लागू होता है जिसमें स्थानीय परिवर्तनों के संरक्षण का उल्लेख नहीं था; टिम से स्वीकृत उत्तर वास्तव में सही है। सिर के लिए qwertzguy के लिए धन्यवाद।


एक कमांड और विनाशकारी git reset कमांड का उपयोग नहीं करता है:

GIT_SEQUENCE_EDITOR="sed -i 's/pick/d/'" git rebase -i HEAD~ --autostash

यह केवल प्रतिबद्ध करता है, आपको चेरी-पिक से ठीक पहले राज्य में वापस डालता है, भले ही आपके पास स्थानीय परिवर्तन हों।


एक चेरी-पिक मूल रूप से एक प्रतिबद्ध है, इसलिए यदि आप इसे पूर्ववत करना चाहते हैं, तो आप बस इसे पूर्ववत करें।

जब मेरे पास अन्य स्थानीय परिवर्तन होंगे

अपने वर्तमान परिवर्तनों को रोकें ताकि आप कमिट करने के बाद उन्हें पुन: लागू कर सकें।

$ git stash
$ git reset --hard HEAD^
$ git stash pop  # or `git stash apply`, if you want to keep the changeset in the stash

जब मेरे पास कोई अन्य स्थानीय परिवर्तन नहीं है

$ git reset --hard HEAD^

git reflog आपके बचाव में आ सकता है।

इसे अपने कंसोल में टाइप करें और आपको SHA-1 के साथ-साथ उनके प्रतिनिधित्व करने वाले आपके इतिहास की एक सूची मिलेगी।

बस किसी भी SHA-1 को चेकआउट करें जिसे आप वापस करना चाहते हैं







git