दूसरे व्यक्ति ने फू के ऊपर बार बनाया, लेकिन आपने इस बीच बाज बनाया और फिर एक इतिहास बना दिया
$ गित लोला
* 2582152 (HEAD, मास्टर) मर्ज शाखा 'अन्यगोई'
| \
| * c7256de (अन्यता) बार
* b7e7176 बाज़
| /
* 9968f79 फू
नोट: गिट लोला एक गैर-मानक लेकिन उपयोगी उपनाम है।
कोई पासा नहीं git revert
:
$ जीआईटी ने हेड को वापस कर दिया
घातक: प्रतिबद्ध 2582152 ... एक मर्ज है, लेकिन कोई विकल्प नहीं दिया गया था।
चार्ल्स बेली ने हमेशा की तरह एक शानदार जवाब दिया । में के git revert
रूप में उपयोग करना
$ git रिवर्ट --no-edit -m 1 HEAD
[मास्टर e900aad] "मर्ज ब्रांच 'अन्यग'
0 फाइलें बदल गईं, 0 प्रविष्टि (+), 0 विलोपन (-)
हटाएं मोड 100644 बार
प्रभावी रूप से हटाता है bar
और एक इतिहास बनाता है
$ गित लोला
* e900aad (HEAD, मास्टर) रिवर्ट "मर्ज ब्रांच 'अदरगी'"
* 2582152 मर्ज शाखा 'अन्यगोई'
| \
| * c7256de (अन्यता) बार
* b7e7176 बाज़
| /
* 9968f79 फू
लेकिन मुझे संदेह है कि आप मर्ज कमिटमेंट को फेंकना चाहते हैं:
$ जीआईटी रीसेट - हेड HEAD ^
HEAD अब b7e7176 बाज पर है
$ गित लोला
* b7e7176 (HEAD, मास्टर) बाज
| * c7256de (अन्यता) बार
| /
* 9968f79 फू
जैसा कि मैनुअल में प्रलेखित हैgit rev-parse
<rev>^
, उदाहरण के लिए ^ ^,v1.5.1^0
एक संशोधन पैरामीटर के लिए एक
प्रत्यय ^
का अर्थ है उस प्रतिबद्ध वस्तु का पहला अभिभावक। ^<n>
मतलब n -थ पैरेंट ( यानी <rev>^
के बराबर <rev>^1
) है। एक विशेष नियम के रूप में, <rev>^0
कमिट का मतलब है और इसका उपयोग तब किया जाता है जब <rev>
किसी ऑब्जेक्ट ऑब्जेक्ट का ऑब्जेक्ट नाम होता है जो एक कमिट ऑब्जेक्ट को संदर्भित करता है।
इसलिए आह्वान करने से पहले git reset
, HEAD^
(या HEAD^1
) b7e7176 था और c7256de HEAD^2
था, अर्थात , क्रमशः मर्ज किए गए पहले और दूसरे माता-पिता।
इससे सावधान रहें git reset --hard
क्योंकि यह काम को नष्ट कर सकता है।