2010-03-05 44 views
6

Arka plan: Trevor, sadece test etmek amacıyla bir test projesi üzerinde çalışıyordu. Git yeniden yaptıktan sonra anonim şube

:git reset --hard 6aa32cfecf4 
    HEAD is now at 6aa32cf auto commit Sun Feb 28 16:00:10 -0800 2010 

Sonra Trevor projeye yeni hareketin ekleyerek mutlu bir şekilde gitti: Bu Trevor bazı istenmeyen kaydedilmesini yok etmek amacıyla sert bir sıfırlama yaptım paylaşılmayan bir yerel tek kişilik havuzudur. Daha sonra, Trevor, taahhüt edilen tarihin grafiksel temsiline baktığı zaman, Trevor, yokedilmiş taahhütlerin anonim bir dalı olarak göründüğünü keşfetti. Git dalı kullanarak bir şube olarak görünmez, ancak GUI'de görünür.

Sorular 1: Trevor bu "anonim daldan" nasıl kurtulabilir ... ve Trevor neye bakıyor? Trevor'ın sert sıfırlama işlemini gerçekleştirdiğinde Trevor'ın neler olduğunu anlamasına yardımcı olacak bazı göstergeler nelerdir, bu yüzden Trevor Trevor'ın beklentilerini daha iyi ayarlayabilir.

Sorular 2: Trevor varsayarsak diğer insanlarla projeyi paylaştı vardı. Sert sıfırlama yapmadan aynı (veya benzer şeyi) yapmak için alternatif ne olurdu?

+1

Swip nedir? –

+0

@AndrewWillems Trevor – dreftymac

cevap

4

The illustrated guide to recovering lost commits with Git'da belirtildiği gibi, "kayıp" işlemleri kurtarabilirsiniz ("bir dal veya etiketle artık başvurulmuyor" gibi).
Bu yüzden hala gitk'te ortaya çıkıyorlar. Örneğin
, a:

$ git fsck −−lost-found 

bunları da görüntüler.

$ git gc --aggressive 
$ git prune 

Ayrıca bkz git gc: cleaning up after yourself (Başka silme operasyonlardan geri almak için şey sahip varsayarak) Bu temizlemek için. O dal paylaşılan olsaydı


, olası bir alternatif n öncekilerin iptal yeni bir tamamlama yapmak için bir git revert olurdu.

3

Bir taahhütle yeni bir şube oluşturabilirsiniz. Son anonim dalında işlersen

Yapabileceğiniz 123e43 geçerli:

git checkout -b my_branch 123e43e

Şimdi dal sigara anonimdir. Ana dalınızda birleştirebilir veya yeniden ölçeklendirebilirsiniz

İlgili konular