2011-05-27 19 views
11

मैं गिट के साथ बहुत सी चीजें नहीं कर सकता और मैं अपने रेपो से एक प्रतिबद्धता को हटाना चाहता हूं, क्योंकि मैंने गलत सामान अपलोड किया है।गिट रूट रूट

मैंने git revert <the_commit> का उपयोग किया लेकिन चूंकि प्रतिबद्धता जड़ है और मैं इसे हटा नहीं सकता। घातक: रूट प्रतिबद्धता को वापस नहीं कर सकता

उस मामले में क्या करना है?

कृपया मुझे अन्य विषयों के लिंक न दें, मैं उन्हें पढ़ता हूं और मुझे समझ में नहीं आता कि मुझे क्या करना है, मुझे कुछ प्रतिबद्धता हटाने के बारे में कुछ बुनियादी उदाहरण चाहिए।

उत्तर

4

एक रूट दूर करने के लिए प्रतिबद्ध, तो आप बस करने के लिए है सभी शाखाओं (और टैग) को हटा दें जिनसे यह पहुंच योग्य है।

यह git branch -D branch-name के साथ किया जा सकता है। (आपको पहली बार एक और शाखा की जांच करनी होगी जो इस रूट प्रतिबद्धता का संदर्भ नहीं लेता है, क्योंकि आप वर्तमान शाखा को नहीं हटा सकते हैं, मुझे लगता है।)

यदि आप इस शाखा में अन्य प्रतिबद्धताओं को बनाए रखना चाहते हैं और केवल हटा दें रूट, git filter-branch बेहतर है, ग्रेग से जवाब देखें।

18

आप git filter-branch का उपयोग कर ऐसा कर सकते हैं। सबसे पहले, उस रूट पर प्रतिबद्ध आईडी की पहचान करें जिसे आप निकालना चाहते हैं। मैं <the_commit> के साथ प्रतिनिधित्व करूंगा।

git filter-branch --parent-filter "sed 's/-p <the_commit>//'" HEAD 

यहाँ एक उदाहरण के एक प्रतिलिपि मैं बस की कोशिश की है:: तो फिर, --parent-filter और एक sed आदेश है कि बंद snips का उपयोग कर कि माता-पिता git filter-branch चलाने

$ git log 
commit 7e1ba37b51fc2cc6289cf66367c9aedc74c664a8 
Author: Greg Hewgill <[email protected]> 
Date: Fri May 27 20:54:27 2011 +1200 

    three 

commit a8a410d2361824cbd518a48225e9402a691be93f 
Author: Greg Hewgill <[email protected]> 
Date: Fri May 27 20:54:17 2011 +1200 

    two 

commit 3171d512d98f6bc5f3c2469312930c0d32d3aa07 
Author: Greg Hewgill <[email protected]> 
Date: Fri May 27 20:54:00 2011 +1200 

    one 
$ git filter-branch --parent-filter "sed 's/-p 3171d512d98f6bc5f3c2469312930c0d32d3aa07//'" HEAD 
Rewrite 7e1ba37b51fc2cc6289cf66367c9aedc74c664a8 (3/3) 
Ref 'refs/heads/master' was rewritten 
$ git log 
commit 489ec1ee20e0dd20cd835ceebf157f628cd75a44 
Author: Greg Hewgill <[email protected]> 
Date: Fri May 27 20:54:27 2011 +1200 

    three 

commit a6f5ee410c9ea4fca6fbff265149b7fc555241eb 
Author: Greg Hewgill <[email protected]> 
Date: Fri May 27 20:54:17 2011 +1200 

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