Rumah > alat pembangunan > git > Apakah maksud git rebase?

Apakah maksud git rebase?

青灯夜游
Lepaskan: 2021-12-29 17:04:36
asal
11594 orang telah melayarinya

git rebase bermaksud: mentakrifkan semula status repositori cawangan apabila menjalankan operasi rebase, git akan mengekstrak pengubahsuaian pada cawangan untuk diasaskan semula daripada nenek moyang yang sama bagi kedua-dua cawangan, dan kemudian pangkalan semula Mata cawangan; kepada komit terkini cawangan asas, dan akhirnya perubahan yang baru diekstrak digunakan pada bahagian belakang komit terkini cawangan asas.

Apakah maksud git rebase?

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Git 2.30.0, komputer Dell G3.

Git rebase, seperti namanya, adalah untuk mentakrifkan semula (semula) peranan titik permulaan (asas), iaitu, untuk mentakrifkan semula status repositori cawangan.

1. Gambar rajah nod penyerahan

Pertama, mari kita alami apa yang dilakukan oleh rebase melalui gambar rajah nod penyerahan yang ringkas

Dua cabang induk dan ciri, di mana ciri berada di titik penyerahan B Cawangan yang ditarik daripada induk

mempunyai komit M baharu pada induk dan dua komit baharu C dan D pada ciri

Apakah maksud git rebase?
Pada masa ini, tukar kepada cawangan ciri , laksanakan arahan berikut, yang bersamaan dengan menggabungkan cawangan induk ke dalam cawangan ciri

git checkout feature
git rebase master

//这两条命令等价于git rebase master feature
Salin selepas log masuk

Rajah berikut menunjukkan rajah nod komit selepas mengasingkan semula prinsip kerjanya:

Apakah maksud git rebase?

  • ciri: cawangan asas akan ditukar, cawangan semasa
  • induk: cawangan asas, cawangan sasaran

Penjelasan rasmi: Apabila melakukan operasi pangkalan semula , Git akan mengekstrak pengubahsuaian pada cawangan yang akan diasaskan semula bermula daripada nenek moyang yang sama bagi kedua-dua cawangan, kemudian mengarahkan cawangan itu untuk diasaskan semula kepada komit terkini cawangan asas, dan akhirnya menggunakan pengubahsuaian yang baru diekstrak ke bahagian belakang komitmen terkini cawangan asas.

Jelaskan dengan contoh: Apabila melaksanakan git rebase master pada cawangan ciri, git akan mengekstrak pengubahsuaian pada cawangan ciri bermula daripada moyang sepunya B master dan featuer, iaitu, kedua-dua komit C dan D, ekstrak mereka mula-mula tiba. 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.

Terdapat juga penjelasan yang sangat mudah. ​​Kunci kepada perintah rebase sebenarnya adalah untuk memahami "base" git selepas titik bifurcation) ) diperoleh, dan kemudian serahkan semula penyerahan pembezaan satu demi satu selepas titik penyerahan terkini "cawangan asas", dan akhirnya arahkan penuding HEAD cawangan semasa ke titik penyerahan terkini


2. Contoh penyerahan git sebenar

Rekod penyerahan dibina mengikut rajah di atas, seperti yang ditunjukkan dalam rajah di bawah: (ABM ialah garis cawangan induk, dan ABCD ialah garis cawangan ciri. Di sini, warna induk berubah dan bercabang Ini tidak menjejaskan pemahaman Ini bermakna dua Hanya dua baris untuk setiap cabang )

Apakah maksud git rebase?
Pada masa ini, laksanakan git rebase master

pada cawangan ciri Selepas pangkalan semula selesai, ABCD ialah baris cawangan ciri asal , ABMC 'D' ialah baris cawangan ciri baharu, ABM ialah baris cawangan induk (tiada perubahan)

. Apakah maksud git rebase?


3. Senario penggunaan yang disyorkan

Terdapat begitu banyak perkara yang perlu dilakukan, tetapi ini sebenarnya perkara yang paling penting. Syarikat dan situasi yang berbeza mempunyai senario penggunaan yang berbeza, tetapi dalam kebanyakan kes perkara berikut disyorkan:

  • Gunakan rebase apabila menarik kod terkini daripada cawangan awam, iaitu git pull -r atau git pull -- Rebase, tetapi satu kelemahan ialah selepas rebase, saya tidak tahu cabang mana cawangan semasa saya mula-mula ditarik, kerana pangkalan telah berubah. (Jika anda menggunakan gabungan, akan ada rekod komit yang tidak bermakna "Gabung... kepada...")

  • Apabila menggabungkan kod ke cawangan awam, gunakan gabungan. (Jika anda menggunakan rebase, maka jika pembangun lain ingin melihat sejarah cawangan utama, ia bukan sejarah asal. Sejarah telah diusik oleh anda)

Disyorkan pembelajaran: "Tutorial Git

Atas ialah kandungan terperinci Apakah maksud git rebase?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan