Saya melakukan rebasing kode di git, saya mendapat beberapa konflik penggabungan. Saya menyelesaikan konflik dan melakukan:
git add
Pada titik ini saya lupa melakukan:
git rebase --continue
Saya melanjutkan pengkodean dan melakukan:
git commit
untuk perubahannya. Sekarang saya aktif "no branch"
dan tidak dapat melakukan:
git rebase --continue
Bagaimana cara mengatasinya?
Jawaban:
EDIT : Lihat jawaban di bawah ini juga untuk melihat apakah itu solusi yang lebih mudah untuk Anda. https://stackoverflow.com/a/12163247/493106
Saya harus mencobanya, tetapi saya pikir inilah yang akan saya lakukan:
git tag temp
git rebase --abort
git rebase --continue
git cherry-pick temp
Masalahnya adalah
temp
komit Anda mungkin berisi resolusi penggabungan, dan kode baru. Jadi ini bisa jadi rumit tetapi saya akan mencobanya dan melihat apakah berhasil.sumber
Lakukan saja
git reset --soft HEAD^
. Ini memindahkan penunjuk HEAD ke induknya tetapi mempertahankan pohon kerja dan menambahkan perubahan gabungan ke indeks. Jadi Anda bisa melanjutkan rebasing dengangit rebase --continue
seperti sebelumnya.sumber
Saya mendapat masalah yang sama, dan lebih buruk lagi, saya melakukan rebasing tiga komit, dan setelah menyelesaikan konflik pada komit kedua, saya "berkomitmen" alih-alih "rebase - lanjutkan".
Alhasil saya mengalami git reflog ini
Ketika saya menerapkan solusi kirikaza, saya baru saja mengembalikan komit ketiga, dan bukan yang kedua, yang bermasalah ..
Seperti yang Anda lihat, rebase dimulai dengan checkout dari remote / origin / master branch dan kemudian menerapkan tiga komit saya yang muncul sebagai tiga operasi sebelumnya (sebelum checkout) di reflog.
Kemudian, jika Anda ingin memulai ulang dari basis yang bersih, sebelum melakukan rebase, Anda cukup mereset hard ke hash sebelum checkout operasi rebase. Dalam kasus saya (lihat gambar):
Kemudian Anda bisa memulai yang baru
git rebase
.sumber
Saya telah melakukan git rebased, memperbaiki konflik, git menambahkan file dengan konflik, dan (secara keliru) dilakukan.
Saya mencoba solusi
git reset --soft HEAD^
dan yanggit reset --hard
diberikan, tetapi tidak ada yang berhasil untuk saya.Namun, baru saja
git rebase --abort
berhasil: itu membawa saya kembali ke sebelum memulai rebase dengan pohon kerja yang bersih.sumber