2010-05-24 14 views
13

मैंने दो शाखाओं के बीच गलत तरीके से विलय किया। मैं फिर निम्नलिखित चला गया:गिट अंडो अंतिम प्रतिबद्ध

git reset --hard HEAD^ 

अब मैं पिछली प्रतिबद्धता (जहां मैं बनना चाहता हूं) पर वापस आ गया हूं। क्या यह सही काम था?

बुरा प्रतिबद्ध, भंडार में अब भी है कि ठीक है या मैं कुछ और करना चाहिए भंडार से हटाने के लिए?

मैं धक्का दिया या अभी तक कुछ और प्रतिबद्ध नहीं किया है।

+0

भावी पीढ़ी के लिए बच सकते हैं, आप अपने आदेश को सही कर सकते हैं। यह 'गिट रीसेट था ... ',' गिट प्रतिबद्ध नहीं '...। –

+0

ओह, इसे इंगित करने के लिए धन्यवाद। – Justin

उत्तर

15

करने के लिए सही बात है कि।

आप कचरा करने के लिए एक git gc डिस्कनेक्ट करता इकट्ठा कर सकते हैं, लेकिन यह आवश्यक नहीं है।

+6

ठीक है, 'गिट जीसी' उस प्रतिबद्धता को हटाने से 90 दिन पहले लगेगा। रिफ्लॉग गिनती से पहुंचने योग्य के रूप में पहुंचने योग्य है, और रीफ्लॉग को समाप्त होने के लिए 90 दिन लगते हैं (डिफ़ॉल्ट रूप से)। लेकिन उत्तर का सारांश सही है: गिट आपके लिए देख रहा है, बस कुछ भी स्थायी रूप से हटाने की कोशिश नहीं कर रहा है। – Cascabel

+0

धन्यवाद जेम्स और जेफ्रोमी। – Justin

+0

@ जेफ्रोमी: इसे खींचा। मैं लोगों को 'जीसी' का सुझाव न देने का प्रयास करता हूं, क्योंकि यह गिट में एकमात्र गैर-परिवर्तनीय संचालन के बारे में है। –

0

mmmm ... git revert हो सकता है कि तुम क्या

जरूरत है इसके अलावा this लेख आपको मदद कर सकता है।

+0

धन्यवाद, हालांकि मैं एक रिवर्स प्रतिबद्ध नहीं बनाना चाहता था। – Justin

1

^HEAD^ साथ उपयोग करना मेरे लिए काम नहीं किया। रीसेट --soft HEAD ~

(git version 1.7.12.4 (Apple Git-37))

(नोट http://gitref.org/basic/#commit

Git: यदि आप zsh उपयोग कर रहे हैं (जैसा कि मुझे क्या करना) आप इसके बजाय मैं से संदर्भ का इस्तेमाल करना पड़ा भी ^ चरित्र वैकल्पिक आदेश के बजाय मैं ऊपर दिया)

+2

क्या आप zsh का उपयोग कर रहे हैं? यदि आपको^ – Justin

+0

से बचने की आवश्यकता है धन्यवाद: डी मैं हूं। क्या एक अजीब चेतावनी है – electblake

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