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

e48ca7de8t
a263f02809 --> unwanted commit
59d785a8e2 --> unwanted commit
2045cc737a
59c2a4127c
f9daf617sj
5f59c2a412
HEAD

असल में मैं दो अवांछित कामों से छुटकारा पाना चाहता हूं। क्या ऐसा कुछ करना संभव है?

मुझे लगता है कि मैं git reset HEAD~ बार-बार कर सकता हूं जब तक कि मैं उन तक नहीं पहुंच जाता जो मैं नहीं चाहता, परिवर्तनों को छिपाना और git reset --hard जो भी मैं चाहता हूं उसे करें। लेकिन मुझे आश्चर्य है कि ऐसा करने का एक साफ और सुरक्षित तरीका है या नहीं।

धन्यवाद!

git
1
theJuls 13 जून 2019, 18:20

1 उत्तर

सबसे बढ़िया उत्तर

आप git rebase --onto का उपयोग किसी विशिष्ट कमिट पर कमिट की एक श्रृंखला को रीबेस करने के लिए कर सकते हैं। उपरोक्त उदाहरण के लिए (शाखा का नाम mybranch मानते हुए:

git rebase --onto 2045cc737a e48ca7de8t mybranch 

इस तरह अवांछित करता है

a263f02809 --> unwanted commit
59d785a8e2 --> unwanted commit

रिबेसिंग के दौरान छोड़ दिया जाता है।

1
michid 13 जून 2019, 18:36