Saya menghadapi situasi sedemikian hari ini Saya telah mengkajinya untuk masa yang lama dan tidak tahu apa yang perlu dilakukan. Contohnya, hari ini saya menulis banyak fungsi, dan semuanya telah commit
. Sebagai contoh, sejarah commit
mungkin seperti ini: commit message
masing-masing ialah "1, 2, 3, 4", mewakili yang pertama hingga keempat Penyerahan.
Andaikan saya mengubah suai fail yang sama test.md
setiap kali Selepas empat penyerahan, kandungan fail ialah:
1
2
3
4
bermakna setiap penyerahan menambah satu baris, dan kandungan yang sepadan ialah commit message
penyerahan ini.
Kemudian sekarang saya mendapati terdapat kesilapan dalam penyerahan kedua dan perlu diubah suai. Hanya gunakan git rebase -i HEAD~3
untuk memasuki
halaman interaktif. Seperti yang ditunjukkan di bawah, kemudian tukar pick
di hadapan penyerahan kedua kepada e
untuk mengubah suai penyerahan kedua.
Pada masa ini, kandungan di dalam test.md
kelihatan seperti ini:
1
2
Kemudian saya perlu menambah sesuatu Sebagai contoh, saya menulis 5
dalam baris baharu, dan kemudian git add .
, git commit --amend
dan commit
kedua ditukar. Kemudian laksanakan git rebase --continue
, jelas sekali, kerana kandungan baris ketiga sepatutnya 3
apabila diserahkan untuk kali ketiga, dan pada masa ini saya menambah sesuatu yang baharu dalam baris ketiga kerana saya perlu menambah penyerahan kedua, jadi konflik pasti akan berlaku, jadi konflik ini mesti diselesaikan sebelum git rebase --continue
boleh dilaksanakan Pada masa ini, kandungan fail adalah seperti berikut:
1
2
<<<<<<< HEAD
5
=======
3
>>>>>>> 1269f10... 3
Tetapi jika saya menyelesaikan konflik. . Kemudian semua maklumat commit
seterusnya akan hilang. .
Maka cara paling bodoh yang boleh saya fikirkan ialah kembali ke titik commit
kedua dan kemudian menyemak semula semuanya. .
Tetapi jika semakan ketiga dan keempat saya sangat besar. . Itu akan menjadi lebih menyusahkan.
Bagaimanakah saya harus menyelesaikan konflik ini supaya commit
kedua boleh diubah suai dengan jayanya tanpa kehilangan commit
berikutnya. .
Mungkin idea saya salah. . Adakah anda mempunyai idea yang baik? . Saya melutut dan berterima kasih kepada anda semua. .
Komit berikutnya tidak sepatutnya hilang Selepas melengkapkan gabungan, laksanakan
git rebase --continue
sekali lagi.Walau bagaimanapun, saya secara peribadi tidak bersetuju dengan pendekatan anda Secara amnya, tidak perlu menukar komit secara paksa di tengah, cuma serahkan semula komitmen baharu.