Saya telah membaca berbagai hal tentang fitur rerere git, dan saya sedang mempertimbangkan untuk mengaktifkannya. Tetapi saya belum melihat siapa pun menyebutkan kemungkinan masalah yang bisa timbul saat menggunakannya. Saya harus berasumsi ada sisi negatifnya, atau mungkin akan diaktifkan secara default. Jadi, apakah ada kerugian untuk mengaktifkan rerere? Masalah potensial apa yang dapat ditimbulkannya yang tidak akan terjadi?
git
merge
git-rerere
Ryan C. Thompson
sumber
sumber
Resolved 'index.html' using previous resolution.
Jawaban:
Jika Anda melakukan penggabungan secara tidak benar, kemudian membuangnya, lalu melakukan penggabungan yang "sama" lagi, penggabungan akan menjadi salah lagi. Anda bisa melupakan resolusi yang direkam. Dari dokumentasi :
Berhati-hatilah untuk menggunakannya di jalur tertentu; Anda tidak ingin menghapus semua resolusi yang direkam di mana-mana. (
forget
dengan tidak ada argumen yang tidak digunakan lagi untuk menyelamatkan Anda dari melakukan ini, kecuali Anda mengetikgit rerere forget .
untuk memintanya secara eksplisit.)Tetapi jika Anda tidak berpikir untuk melakukan itu, Anda dapat dengan mudah memasukkan penggabungan yang salah itu ke dalam riwayat Anda ..
sumber
rerere
masih menyisakan file dengan konflik yang ditandai sebagai tidak digabungkan, sehingga Anda harus menambahkannya secara manual (mudah-mudahan setelah memeriksa / mengujinya) sebelum melakukannya. Anda selalu dapat menggunakangit checkout -m <path>
untuk memeriksa versi asli yang berkonflik dan mengulangi resolusi jika perlu.Seperti yang disebutkan JC Hamano dalam artikelnya " Bersenang-senang dengan rerere "
Jadi jika Anda mengaktifkan konten
rerere
yang terlalu luas, Anda mungkin akan mendapatkan resolusi penggabungan yang mengejutkan atau membingungkan karena poin terakhir.sumber
Saya mengaktifkan rerere secara global. Saya benar-benar tidak menyadari adanya masalah, dan biasanya itu membuat hidup saya lebih mudah.
sumber
Saya memilih komit (dalam gitk) yang hanya berisi file biner. Cherrypick gagal karena konflik (yang menjadi sesuatu tentang hal itu wajar) dan saya menyelesaikan konflik dengan tetap memilih cherry. Saya terkejut kemudian menemukan di cabang rebased lain bahwa dll saya tidak berperilaku - hanya untuk menemukan mereka tidak dibawa ke dalam rebase sebagai (saya berspekulasi) resolusi konflik otomatis. Jadi ini adalah satu-satunya kasus yang saya temui (setelah mengaktifkan ulang) menjalankan perilaku yang berlawanan dengan intuisi (meskipun saya yakin sangat konsisten).
sumber
git rerere forget path/to/compiled/bin.dll