Rumah > Artikel > alat pembangunan > Penjelasan terperinci tentang contoh rebase untuk pembelajaran git
Artikel ini membawa anda pengetahuan yang berkaitan tentang Git, yang terutamanya memperkenalkan isu yang berkaitan dengan rebase dan rebase boleh difahami secara langsung sebagai menukar pangkalan. Cawangan ciri ialah cawangan berdasarkan B cawangan induk Asas ciri ialah B. Saya harap ia akan membantu semua orang.
Kajian yang disyorkan: "Tutorial Pembelajaran Git"
Artikel ini menggunakan contoh paling mudah untuk membantu anda menguasai prinsip dan penggunaan dengan cepat of rebase
Pertama, mari kita alami apa yang dilakukan oleh rebase melalui gambar rajah nod penyerahan
Dua cabang induk dan ciri, di mana ciri adalah daripada titik penyerahan B Cawangan yang ditarik daripada induk
mempunyai komit M baharu pada induk, dan terdapat dua komit baharu C dan D pada ciri
Pada masa ini, tukar kepada ciri branch dan laksanakan arahan berikut , yang bersamaan dengan ingin menggabungkan cawangan induk ke dalam cawangan ciri (senario langkah ini boleh dibandingkan dengan kami telah membangunkan ciri cawangan kami sendiri untuk seketika dan bersedia untuk menarik perubahan terkini daripada induk batang)
git checkout featuregit rebase master //这两条命令等价于git rebase master feature
Gambar berikut ialah gambarajah nod komit selepas asas semula, terangkan prinsip kerjanya:
Penjelasan rasmi (jika anda tidak faham, anda boleh membaca perenggan seterusnya secara langsung): Apabila melakukan operasi rebase, git akan bermula dari dua cawangan. Nenek moyang yang sama mula mengekstrak pengubahsuaian pada cawangan untuk diasaskan semula, kemudian menunjuk cawangan untuk diasaskan semula kepada komit terkini cawangan asas, dan akhirnya menggunakan pengubahsuaian hanya diekstrak ke belakang komit terkini cawangan asas.
Terangkan dengan contoh: Apabila melaksanakan git rebase master pada cawangan ciri, git akan mengekstrak pengubahsuaian pada cawangan ciri bermula daripada nenek moyang biasa B master dan featuer, iaitu, C dan D Dua komit, diekstrak dahulu. Kemudian arahkan cawangan ciri ke komit terkini cawangan induk, iaitu M. Akhir sekali, C dan D yang diekstrak disambungkan kepada M, tetapi proses ini adalah untuk memadamkan C dan D asal dan menghasilkan kandungan penyerahan C’ dan D’ yang baharu, tetapi id komit adalah berbeza. Sememangnya, ciri akhirnya menunjuk kepada D'.
Penjelasan popular (penting!!) : rebase, rebase, boleh difahami secara langsung sebagai menukar pangkalan. Cawangan ciri ialah cawangan yang ditarik dari B cawangan induk, dan asas ciri ialah B. Dan jika induk mempunyai komit baharu selepas B, ia bersamaan dengan menggunakan komit baharu pada induk sebagai asas baharu cawangan ciri. Operasi sebenar adalah untuk menyimpan penyerahan ciri selepas B, kemudian padamkan penyerahan asal, kemudian cari lokasi penyerahan terbaharu induk, dan kemudian sambungkan penyerahan yang disimpan (nod baharu dengan id komit baharu), supaya asas cawangan ciri agak Yu menjadi M dan bukannya B asal. (Perhatikan bahawa jika tiada komit baru pada induk selepas B, maka B asal masih akan digunakan sebagai asas. Operasi rebase adalah bersamaan dengan tidak sah. Pada masa ini, pada dasarnya tiada perbezaan daripada git merge. Satu-satunya perbezaannya ialah git merge akan mempunyai satu lagi rekod Merge Submission rekod operasi)
Contoh di atas boleh disarikan ke dalam senario kerja sebenar berikut: Zhang San menarik kod daripada B untuk pembangunan, dan telah menyerahkannya dua kali setakat ini, dan mengembangkannya kepada D; Li Si juga bermula dari B B menariknya dan membangunkannya Selepas pembangunan selesai, dia menyerahkannya kepada M dan kemudian menggabungkannya ke dalam batang utama. Pada masa ini, Zhang San ingin menurunkan kod terbaharu, jadi dia melaksanakan git rebase master pada cawangan ciri, iaitu, meletakkan semula cawangan induk Memandangkan Li Si telah membangunkan dan menggabungkan batang lebih awal, ini adalah bersamaan dengan Zhang San berdasarkan penghujahan terbaru Li Si M telah dibangunkan.
Rekod penyerahan dibina mengikut rajah di atas, seperti yang ditunjukkan dalam rajah di bawah: (ABM ialah garisan cawangan induk, ABCD ialah baris cawangan ciri . Di sini induk menukar warna dan bercabang Ini tidak menjejaskan pemahaman bahawa ia bermakna dua cabang dan dua baris )
Pada masa ini, laksanakan git rebase master
Pembelajaran yang disyorkan: "Tutorial Git 》
Atas ialah kandungan terperinci Penjelasan terperinci tentang contoh rebase untuk pembelajaran git. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!