2011-05-27 23 views
11

Git ile bir çok şey yapamıyorum ve bir yanıtı repo'mdan kaldırmak istiyorum çünkü yanlış şeyler yükledim.Git kaldırma işlemini kaldır

git revert <the_commit> kullanıyorum, ancak bu işlem kök olduğundan ve kaldıramıyorum. Önemli: Bir kök işlemi geri alınamıyor

Bu durumda ne yapılmalı?

Lütfen bana diğer konularla ilgili bağlantılar vermeyin, onları okurum ve ne yapacağımı anlamıyorum, bazı işlemlerin kaldırılmasıyla ilgili bazı temel örneklere ihtiyacım var.

cevap

4

taahhüt, sadece zorunda ulaşılabilir olduğu tüm dalları (ve etiketleri) kaldırın.

Bu, git branch -D branch-name ile yapılabilir. (Bu kök işlemine başvurmamanız gereken başka bir şubeye başvurmanız gerekir, çünkü mevcut dalı kaldıramazsınız, bence.)

Bu şubedeki diğer işlemleri sürdürmek ve yalnızca kaldırmak Kök, git filter-branch daha iyidir, Greg'in cevabına bakın.

18

Bunu git filter-branch kullanarak yapabilirsiniz. Öncelikle, kaldırmak istediğiniz kökteki taahhüt kimliğini tanımlayın. Bunu <the_commit> ile temsil edeceğim. İşte

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

Sadece denenmiş bir örneğinin bir transkript: Sonra, anne-baba bu --parent-filter ve kapalı snips bir sed komutunu kullanarak git filter-branch işletilen bir kök çıkarmadan için

$ 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 
$ 
İlgili konular