Git rerere'yi etkinleştirmenin herhangi bir dezavantajı var mı?


107

Git'in yeniden kullanma özelliği hakkında çeşitli şeyler okudum ve etkinleştirmeyi düşünüyorum. Ancak, onu kullanırken ortaya çıkabilecek olası sorunlardan kimsenin bahsetmediğini görmedim. Bir dezavantajı olduğunu varsaymalıyım, yoksa muhtemelen varsayılan olarak etkinleştirilecektir. Öyleyse yeniden etkinleştirmenin herhangi bir dezavantajı var mı? Aksi takdirde oluşmayacak olan hangi potansiyel sorunlara neden olabilir?


Ne zaman otomatik rerere etkindir ve bir önceki çözünürlüğü uygular, bir mesaj görüntüleniyor? Varsa neye benziyor? TIA!
joeytwiddle

1
@joeytwiddle, bu makaleye göre , şu şekilde olacaktır,Resolved 'index.html' using previous resolution.
sampablokuper

Yanıtlar:


69

Yanlış bir şekilde birleştirme yaparsanız, sonra atarsanız, ardından "aynı" birleştirmeyi tekrar yaparsanız, yine yanlış olur. Yine de kaydedilmiş bir çözünürlüğü unutabilirsiniz. Gönderen belgeler :

git rerere forget <pathspec>

Bu, içindeki mevcut çatışma için yeniden kaydedilen çatışma çözümlerini sıfırlar <pathspec>.

Belirli yollarda kullanmaya dikkat edin; Kaydedilmiş tüm çözünürlüklerinizi her yerde uçurmak istemezsiniz. ( Açıkça talep etmek için yazmadığınız sürece, sizi bunu yapmaktan kurtarmak için forgethiçbir bağımsız değişken kullanımdan kaldırılmıştırgit rerere forget . .)

Ancak bunu yapmayı düşünmezseniz, bu yanlış birleşmeyi geçmişinize kolayca ekleyebilirsiniz ..


13
Bu nedenle rerere, dosyaları birleştirilmiş olarak işaretlenmiş çakışmalarla bırakmaya devam edin, böylece taahhütte bulunmadan önce onları manuel olarak eklemeniz gerekir (umarım onları inceledikten / test ettikten sonra). Her zaman git checkout -m <path>orijinal çakışan sürümü kontrol etmek ve gerekirse çözünürlüğü yeniden yapmak için kullanabilirsiniz.
Cascabel

1
Bu mantıklı! Yeni bir takma ada ihtiyacınız var gibi görünüyor.
Cascabel

5
Sanırım bu muhtemelen asıl mesele. Yeniden çalıştırmanın etkinleştirilmesi, hataların beklenmedik bir şekilde gizlice girmesi için bir yol daha ekler. İptal ettiğiniz (ya da geçmişten silerek geri aldığınız) bir birleştirme, daha sonra sizi rahatsız etmek için geri gelebilir. Temel olarak, gerçek geçmiş grafiğine ortogonal olan ikinci bir tarih mekanizması sunar.
Ryan C. Thompson

3
@RyanThompson İptal edilen birleştirmeler, yeniden yayını etkilemez. (Sıklıkla yapmalarını isterdim — Bazen bir birleştirmeyi iptal ettim çünkü yanlış kurdum, sonra doğru kurduğumda aynı kararları almam gerekiyordu.) Tarihten bir birleştirmeyi silmekle ilgili olarak, neden hiç yap bunu?
Marnen Laibow-Koser

40

JC Hamano'nun " Eğlence ile eğlence " makalesinde bahsettiği gibi

  • Rerere, çatışmalı bölgeleri nasıl çözdüğünüzü hatırlıyor;
  • Rerere, anlamsal değişikliklere uyum sağlamak için çatışmalı bölgelerin dışına nasıl dokunduğunuzu da hatırlar;
  • Daha önce çözdüğünüzden farklı içeriklere sahip iki dalı birleştiriyor olsanız bile, Rerere önceki çözünürlüğü yeniden kullanabilir .

Uzun süredir reerere kullanan insanlar bile son noktayı fark edemiyorlar.

Bu nedenle rerere, çok geniş bir içeriği etkinleştirirseniz , son noktadan dolayı şaşırtıcı veya kafa karıştırıcı birleştirme çözünürlüğü elde edebilirsiniz.


15
Çatışan hunks hala eşleşmelidir; yanlış bir pozitif vermesi oldukça zordur.
Cascabel

3

Küresel olarak yeniden etkinleştirildim. Gerçekten hiçbir sorun fark etmedim ve genellikle hayatımı kolaylaştırıyor gibi görünüyor.


4
Burada aynı. 2+ yıllık kullanımda sorun yok.
Andrey Tarantsov

3

Cherry, yalnızca ikili dosya içeren bir commit (gitk'te) seçti. Cherrypick, çatışma nedeniyle başarısız oldu (ki bu da doğal bir şeydir) ve kiraz seçimini koruyarak çatışmayı çözdüm. Daha sonra, dll'lerimin davranmadığını başka bir rebased branşta bulduğumda şaşırdım - sadece (spekülasyona göre) otomatik çatışma çözümü olarak geri ödemeye dahil edilmediklerini keşfettik. Yani bu, sezgisel olmayan (yine de tamamen tutarlı olduğumdan eminim) davranışla karşılaştığım (yeniden etkinleştirildikten sonra) karşılaştığım tek durum.


1
Tedavi:git rerere forget path/to/compiled/bin.dll
Mr_and_Mrs_D

Orijinal durumda, anlaşmazlığı kiraz toplamada değil, yeniden satışta görüyorum ama bunun bir fark
yaratacağını
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.