2012-01-17 30 views
7

İşlemlerden birinde hata yaptım. Şimdi bu taahhüdü tamamen silmek istiyorum, bu yüzden hiç var olmadı gibi görünüyor. Bunu günlük olarak görmek istemiyorum.GÜNLÜK OLDUĞUNU GETİRDİ GÜNLÜK KAYDEDİLEN GÜNLÜK KAYDETMEYEN GELİŞTİRME

this question ("How to delete a 'git commit'")'dan tüm ipuçlarını denedim, ancak kayıttaki günlüğü görebiliyorum. Tamamen nasıl silebilirim?

- Düzenleme -

Tamam, tamamen bilgi vermemektedir. Kevin Ballard doğrudur.

Şimdilik, bu işlemi zorlamıyorum, sadece makinemde. ouah cevap çalışması,

git log 

göstermez komut, ama ne komut

git reset --hard HEAD^ 

do "chekout son tamamlama ve buna dalını değiştirmek", bu yüzden görmeye devam olduğunu Bu SmartGit gibi bir grafik programı ile taahhüt.

--edit 2--

Hayır, bu bir SmartGit hatadır !!!! Gerçekleşme gerçekten ortadan kayboluyor. Günlüğün pencerelerini kapatmam ve tekrar açmam gerekiyor. Taahhüt artık yok.

+0

Yanılmış olabilirim, ama yapamayacağınızı düşünüyorum. – zneak

+0

@zneak: Yapabilirsin ama Rodrigo daha fazla bilgi vermeli. Bu taahhüt herhangi bir yere itildi mi? Bu işlemle ilgili tüm bilgileri ve dosyalarını diskten silmeye özen gösterir misiniz, yoksa 'git günlüğü’nde görünmediğinden emin olun (ve daha sonra zaman içinde doğal olarak çöp toplanabilir). ? –

+0

Bu http://stackoverflow.com/questions/927358/git-undo-last-commit – Shraddha

cevap

10

buna son değilse son bir editör açılacaktır

git rebase -i commit_hash^ 

taahhüt

git reset --hard HEAD^ 

işlemek ise, ile tüm satırı silin kaydedip çıkın taahhüt.

Not tarihin yeniden yazma ya da zaten itilmiş olan şube genellikle kötü bir fikir olduğunu ve yeni bir katacak

git revert commit_hash 

commit_hash taahhüt olduğunu döner işlemek kullanmayı tercih edebilir eğer rebasing.

+2

'daki ipuçlarını deneyin. Tek bir işlemi kaldırmaya çalışıyorsanız, sadece 'git rebase --onto $ SHA1 'i kullanabilirsiniz.^$ SHA1' ("SHA1’in silme taahhüdü"). Ayrıca, bu, birleştirme çoğaltmayacak uyarısı ile birlikte gelir. Birleştirme denemek ve çoğaltmak için '-p' bayrağı verebilirsiniz, ancak silme işleminizin herhangi bir birleştirme çözünürlüğü üzerinde bir etkisi varsa, düzgün çalışmayabilir.Ayrıca -p'nin '-i ile karıştırılması kötü bir fikirdir (git-rebase manpage'deki HATALAR bölümüne bakın). –

+0

@ouah muhtemelen eğer şube itilmişse, bu bir KÖTÜ IDEA olduğundan bahsetmelisiniz. – Richard

+0

@Richard tamam, tamam! – ouah

1

Bu komut (Tarihi yeniden olurdu dikkat):

git rebase --onto commitHash^ commitHash 

(@ ouah çözümü benim için çalışmak ve yerine Kevin öldü, ama çözüm olması gerektiği bir açıklama olmamalı vermedi Bunun gibi bir yanıt verin.)