cari

Rumah  >  Soal Jawab  >  teks badan

Front-end - Perihal menggunakan git rebase -i HEAD untuk mengubah suai kod yang dilakukan sebelum ini

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. .

漂亮男人漂亮男人2794 hari yang lalu649

membalas semua(1)saya akan balas

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-02 09:34:51

    1. Komit berikutnya tidak sepatutnya hilang Selepas melengkapkan gabungan, laksanakan git rebase --continue sekali lagi.

    2. 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.

    balas
    0
  • Batalbalas