2012-05-30 31 views
11

gelen Olası Çoğalt taahhüt Sil: bir github


How can I remove a commit on github?
How to delete a 'git commit'

Bu yüzden bir github gelen taahhüt kaldırmak çalışıyorum.

3 önce işlem tamam ve tüm değişiklikler kaybolursa tamam.

Yani buradan sorulara dayalı, ben Şimdi github yanı sıra git günlüğüne gitmiş bir

git reset --hard <sha-commit-name-to-go-back-to> 
git push -f origin HEAD^:master 

yaptı.

o zaman benim değişiklikleri redid ve

git add <file I changed> 
git commit 
git log 

Her şey iyi görünüyor yaptı. Eski işlemlerin izi yok. Bu yüzden sonunda bir tane yaptım: o zaman github'un kaldırdığım üç işi var.

Neyi yanlış yapıyorum? İşlemlerin geri dönmesini nasıl sağlayabilirim?

cevap

11

Yeni değişiklikler uygulamadan önce git rebase işlemini kullanın. Yeniden düzenlemeden sonra yeni değişiklikleri ekleyin ve işlem yapın.

git rebase -i HEAD~2 

git push origin +master 
+0

Teşekkürler! Bu işe yaramış gibi görünüyor. Ancak .git dizininde kazma Ben kaldırmak istediğim taahhüt referansları ile log altında bir grup dosya buldum. Ayrıca bu dosyaları git push origin + master yapmadan önce referansı kaldırmak için düzenledim. – Jistanidiot

+2

@Jistanidiot, büyük olasılıkla git-reflog'un depolamasıyla uğraşıyordunuz. Aslında pek de parlak bir fikir değil, çünkü 'git reflog' depolamasını manipüle etmek için kendi yöntemlerine sahiptir ve bir şeyleri kırmak için değişiklikler yaptınız. – kostix

+2

Teşekkürler! İlk önce bir 'git reset --hard ' komutunu kullandım, sonra komutlarını kullandım ve bir çekicilik gibi çalıştı! –