2016-03-28 23 views
2

Uyarı dan taahhüt bir silin. Şu an bir repo aldığım bir projede çalışıyorum. ve 300'den fazla görüntüyü yanlışlıkla optimize etti. İyi bir şey, tüm görüntüleri tek bir işlemle ayırdım. Müşteri yapmış olduğum bir çekme talebi talep etti. Ayrıca bu görüntüleri optimize etmemem ve bu talebi çekme talebinden silmemem gerektiğini söyledi.git çekme isteği

Görüntülerle ilgili taahhütler pek çok taahhütte bulunuldu, bu nedenle başımı sarmak zordu. Düşündüğüm şey, repo'yu bu işleme geri yüklerse ve görüntüleri silip tekrar basarsam. ancak görüntüleri silerek, görüntüleri orijinal olarak olduklanna geri dönecek şekilde sıfırlarım ve değişikliklere bastığımda, yeni işlemle görüntülerde hiçbir şeyin değişmediğini gösteriyor.

Kendimi netleştirdiğimi emin değilim. Bu konuda gitmenin en iyi yolu nedir?

+0

Kabarcıklı etkileşimli çizgilere bakın. – intboolstring

cevap

2

1) Resimlerle yapılan işlemin karma değerini bulun. KOMİT olduğunu varsayalım. Sonra içinde konsol tipinde (işlemek karma sonra ^ eklemek için dikkat edin):

git rebase -i COMMIT^ 

Git bir editör açılacaktır. Resimlerle yapılan işleme karşılık gelen ilk satırı silin. Dosyayı kaydedin ve düzenleyiciden çıkın. Git geçmişinizi yeniden yazacak ve söz konusu görselleri resimlerle hariç tutacaktır. Sonra --force seçeneği ekleyerek uzak repo için yeni tarih itmek:

git push --force origin master 

Yap çekme isteğini. sadece bu taahhüt

git rebase --onto COMMIT^ COMMIT master 

3) Ve ayrıca olduğu gibi geçmişinizi bırakıp iptal edebilirsiniz:

2) yerine interaktif rebase size sizin durumunuzda bu kullanabilirsiniz

git revert COMMIT 
+0

şimdi tüm işlemleri sıfırlamamı ve tüm kodu tek bir taahhütte yerine getirmemi istiyor – user3730179

+0

CCC'nin sizinki en son taahhüdü olduğunu varsayalım. git reset --soft CCC. Tüm değişikliklerin sahnelenmesini ancak taahhüt edilmediğini alacaksınız. Onları tamamlayın ve 'force 'ile itin. – user2683246

+0

Etkileşimli rebasing yaparken (1), ilk satırı silebilir, daha sonra "reword" için ilk "pick" ve diğerlerini "fixup" için kullanabilirsiniz. Kaydet çık. Yeni bir taahhüt mesajı yaz, kaydet, çık, it. – user2683246